2014-11-19 3 views
6

Я пытаюсь использовать PDF для тиснения и вам нужно повернуть его на 90 градусов, чтобы правильно его надеть? Кто-нибудь знает, как это сделать? Кажется, он не найден в Интернете.Вращение PDF-90 градусов с использованием iTextSharp в C#

+1

связывании '' PdfStamper' к PdfReader' но перед вами что вы можете свободно манипулировать PDF, используя любые методы, доступные из объекта «PdfReader». См. [Официальный образец здесь] (http://itextpdf.com/examples/iia.php?id=232) на Java или очень похожий, но не совсем такой же [вопрос здесь] (http://stackoverflow.com/a/5349641/231316) в C#. –

ответ

10

В примере Rotate90Degrees для получения экземпляра документа используется значение /Rotate в каждом словаре страниц. Если нет такого входа, /Rotate записи со значением 90 Добавлено:

final PdfReader reader = new PdfReader(source); 
final int pagesCount = reader.getNumberOfPages(); 

for (int n = 1; n <= pagesCount; n++) { 
    final PdfDictionary page = reader.getPageN(n); 
    final PdfNumber rotate = page.getAsNumber(PdfName.ROTATE); 
    final int rotation = 
      rotate == null ? 90 : (rotate.intValue() + 90) % 360; 

    page.put(PdfName.ROTATE, new PdfNumber(rotation)); 
} 

Как только это будет сделана, мы используем PdfStamper упорствовать изменения:

PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest)); 
stamper.close(); 
reader.close(); 

Это для IText Java. Для iTextSharp перенос Java на C# легко, поскольку терминология идентична. Изменение некоторых низших дел в верхних случаях, как это:

PdfDictionary page = reader.GetPageN(1); 
page.Put(PdfName.ROTATE, new PdfNumber(90)); 

Там в более или менее идентичный фрагмент кода в вопросе части этого поста: How to rotate PDF page with iTextSharp without causing error in ghostscript?