Пример Rotate90Degrees использует PdfReader
для получения экземпляра документа, а затем изменяет значение /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));
В части вопроса этого сообщения есть более или менее идентичный фрагмент кода: Как повернуть страницу PDF с помощью iTextSharp, не вызывая ошибки в Ghostscript?