2015-07-03 4 views
0

У меня есть существующий PDF, и я хочу скопировать все страницы в новый PDF-файл. Тем не менее, я хотел бы повернуть страницы на 90 градусов, но не хочу использовать свойство Page-Rotation-Property. Я действительно новичок в itext и не нашел решения в Google.iText - вращение страниц без поворота свойство

+1

Если вы не хотите использовать страницу * Вращение * запись, вы можете использовать код, похожее на код в [этот ответ] (http://stackoverflow.com/a/13601490/1729265). – mkl

+0

Спасибо за ссылку, это действительно помогло мне. – Moe

ответ

1

Я решил это с помощью этого кода. Благодаря mkl!

PdfReader pdfIn = new PdfReader("source.pdf"); 
    Document document = new Document(getNormalizedPageSize(pdfIn), 0, 0, 0, 0); 
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("d:/target.pdf")); 
    document.open(); 
    PdfContentByte cb = writer.getDirectContent(); 

    for (int i = 1; i <= pdfIn.getNumberOfPages(); i++) { 
     PdfImportedPage page = writer.getImportedPage(pdfIn, i); 
     document.setPageSize(new Rectangle(page.getHeight(), page.getWidth())); 
     document.newPage(); 
     float min = Math.min(page.getHeight(), page.getWidth()); 
     AffineTransform rotateInstance = AffineTransform.getRotateInstance(Math.PI/2, 
       min/2.0, min/2.0); 
     double[] matrix = new double[6]; 
     rotateInstance.getMatrix(matrix); 
     cb.addTemplate(page, (float) matrix[0], (float) matrix[1], (float) matrix[2], 
       (float) matrix[3], (float) matrix[4], (float) matrix[5]); 
    } 
    document.close(); 
Смежные вопросы