Почему книжная страница меняется на альбомную после вставки PDF с помощью iText?

Я использую "itext-5.5.8", пытаюсь вставить (одну) страницу портретного pdf в основной документ pdf, код работает отлично, но после вставки портретных страниц автоматически меняется на альбомный, не знаете почему?

КОД:

try {
        PdfReader firstPdf = new PdfReader(mainFileWithPath); //main doc
        PdfReader secondPdf =new PdfReader(addFileNameWithPath); // inserting pages

        PdfStamper stamp = new PdfStamper(firstPdf, new FileOutputStream(outputPDFFile));

            int totalNumOfPagesToInsert = secondPdf.getNumberOfPages();
            int i =1;
            while (i<=totalNumOfPagesToInsert) {
                // Get a page(s) from secondPdf with the given pageNo
                PdfImportedPage page  = stamp.getImportedPage(secondPdf,i);

                // insert new page in to the newly created pdf at specified page number.
                stamp.insertPage(INSERT_AT_PAGE_NO + (i-1), secondPdf.getPageSize(i));

                // copy the content of the page copied from secondPdf.
                stamp.getUnderContent(INSERT_AT_PAGE_NO + (i-1)).addTemplate(page, 0, 0);

                i++;
            }

            //close the new created pdf.
            stamp.close(); 

Пожалуйста, дайте мне указания, чтобы это исправить! Спасибо

1 ответ

Как отметил автор @Bruno Lowagie, "не принимал во внимание эту ротацию"

Исправили проблему как... Код ниже...

try {

            PdfReader firstPdf = new PdfReader(mainFileWithPath);
            PdfReader secondPdf =new PdfReader(addFileNameWithPath);

            // create new pdf with the content from firstPdf
            PdfStamper stamp = new PdfStamper(firstPdf, new FileOutputStream(outputPDFFile));
            stamp.setRotateContents(false);

            int totalNumOfPagesToInsert = secondPdf.getNumberOfPages();
            int i =1;
            while (i<=totalNumOfPagesToInsert) {
                // Get a single page from secondPdf with the given pageNo
                PdfImportedPage page  = stamp.getImportedPage(secondPdf,i); //Actual working code

                // insert new page in to the newly created pdf at specified page number.
                // choose page size bas
                stamp.insertPage(INSERT_AT_PAGE_NO + (i-1), secondPdf.getPageSizeWithRotation(i)); //Actual working code

                // copy the content of the page copied from secondPdf.
                stamp.getUnderContent(INSERT_AT_PAGE_NO + (i-1)).addTemplate(page, 0, 0); //Actual working code

                i++;
            }

            //close the new created pdf.
            stamp.close();
Другие вопросы по тегам