Использование iText 5.5.5. У меня есть открытый com.itextpdf.text.Document
через экземпляр PdfWriter
. В разных точках во время построения документа мне нужно добавить статические PDF-страницы. Статические страницы поступают в виде byte[]
.Добавить существующий документ PDF в открытый документ
После нескольких примеров на itextpdf.com, я не могу сшить их примеры с моим прецедентом. Вот код:
Document trunk = new Document();
PdfWriter writer = PdfWriter.getInstance(trunk, getTrunkStream());
writer.setPageEvent(geTrunkPageEvent());
trunk.open();
....
PdfReader reader = new PdfReader(bytes);
// graft == my static content
Document graft = new Document(reader.getPageSizeWithRotation(1));
PdfCopy copy = new PdfCopy(graft, getTrunkStream());
graft.open();
int count = reader.getNumberOfPages();
for(int page = 0; page < count;) {
copy.addPage(copy.getImportedPage(reader, ++page));
}
copy.freeReader(reader);
reader.close();
Код компилируется и управляется безотказной работы. Но страницы трансплантата не отображаются на страницах соединительных линий.
Вы загрузили бесплатную книгу [Лучшие вопросы iText по StackOverflow] (http://pages.itextpdf.com/ebook-stackoverflow -questions.html)? Он содержит ответ на этот вопрос [Создание PDF-изображения в iText] (http://stackoverflow.com/questions/23022471/creating-a-pdf-image-in-itext). В вашем коде вы используете 'getTrunkStream()' дважды: один раз для создания документа с нуля с помощью 'PdfWriter' и один раз для объединения существующих документов с помощью' PdfCopy'. Это противоречит всей логике. Разве вы не читали [глава 6 моей книги] (http://manning.com/lowagie2/samplechapter6.pdf)? –
Зачем покровительствовать вопросу? –
Потому что я покровитель iText. Вы когда-нибудь летали в Силиконовой долине? Тогда вы узнаете, что аэропорт SFO расположен в месте под названием Сан-Бруно: D –