Вопрос по pdf, image, itext, java – Позиционирование изображения в iText - Java

4

Я пытаюсь прочитать один PDF и скопировать его данные в другой PDF. Первый PDF-файл содержит текст и изображения, и я хочу записать изображение во второй PDF-файл именно там, где заканчивается текст (что в основном является концом PDF-файла). Теперь он просто печатается сверху. Как я могу сделать это изменение?

PdfReader reader = null;
reader = new PdfReader(Var.input);
Document document=new Document();
PdfWriter writer = null;
writer = PdfWriter.getInstance(document,new FileOutputStream(Var.output));
PdfImportedPage page = writer.getImportedPage(reader, 1); 
reader.close();  
document.open();
PdfContentByte cb = writer.getDirectContent();
// Copy first page of existing PDF into output PDF
document.newPage();
cb.addTemplate(page, 0, 0);

// Add your new data / text here
Image image = null;
image = Image.getInstance (Var.qr);
document.add(image);
document.close();

Ваш Ответ

2   ответа
6

Сначала получите местоположение / координаты того, куда изображение должно идти, затем просто добавьте вторую строку снизу к вашему коду, чтобы изображение вставилось в это место.X, Y "

Image image = Image.getInstance(String RESOURCE);
image.setAbsolutePosition(X, Y);
writer.getDirectContent().addImage(image);

Посмотрите здесь для рабочего примера:http://itextpdf.com/examples/iia.php?id=70

Благодарю. Это сработало именно так, как я хотел. :) Но есть ли способ разместить текст с координатами с помощью pdf stamper? Anurag Ramdasan
О, это здорово. Но есть ли способ определить X и Y, где заканчивается текст? или внизу по центру последней страницы? Anurag Ramdasan
Я понимаю, что есть несколько способов сделать это, но из вашего кода это выглядит как mkl 'Предложением текстовых полей будет самый простой способ получить X и Y. Другой способ, который требует немного больше работы, - это читать и записывать части из исходного PDF по частям и вычислять местоположение X и Y по мере необходимости. медленнее, но таким образом вы точно знаете, куда может поместиться изображение, и можете добавлять изображения в текст и вокруг него. sorifiend
На самом деле Анурагу, возможно, придется немного изменить образец, на который я указывал. Он находит поле, если весь текст. Это соответствует тому, что он сказал, но если его pdf содержит нижний колонтитул, то образец также видит его как часть текста. Следовательно, онЯ должен адаптировать код, чтобы принять во внимание нижние колонтитулы. mkl
2

страницами. Ваш подход отбрасывает все интерактивное содержимое. Вы можете использовать sorifiend 'Идея там тоже.

Чтобы определить, где заканчивается текст на данной странице, взгляните на iText in Action, пример 2-го издания.ShowTextMargins который анализирует PDF и рекламирует прямоугольник, показывающий текстовое поле.

Взгляните на главу 6 iText в действии, 2-е издание, доступно наmanning.com/lowagie2/samplechapter6.pdf  бесплатно. Подраздел 6.3.1 должен показать вам путь. И вся эта глава хорошо читать в любом случае ... mkl
Да, ты можешь. Мне придется посмотреть, как, хотя ... Мои варианты использования неt включает добавление текста в существующие документы. mkl
Благодарю. Это сработало именно так, как я хотел. :) Но есть ли способ разместить текст с координатами с помощью pdf stamper? Anurag Ramdasan
блестящий. Благодарю. Anurag Ramdasan
Мне пришлось добавить набор изображений и текста, получается, изображения легко, но с текстом работать немного сложнее. Некоторая помощь будет оценена :) Anurag Ramdasan

Похожие вопросы