Все,
У меня есть два PDF-файла. Это один и тот же PDF, но заполненный разной информацией. Например, поле «Компания» будет содержать «ABC Company» в качестве заполненных данных для PDF1 и «XYZ Company» в качестве заполненных данных для PDF 2.
При объединении я получу оба документа, но второй не будет содержать данных в заполняемых полях.
Я могу поменять порядок их объединения, и всегда у первого будут данные, а у второго данных нет.
Из исследования кажется, что могут быть проблемы из-за того, что поля на страницах имеют одинаковое имя? Может ли это быть проблемой?
Я использую версию: iText 5.4
Спасибо за любую помощь / предложения, которые вы можете предоставить.
--- 9/10/2018 Код для показа.
FYI. Я взял этот код у кого-то, кто написал его несколько лет назад и ранее не работал с Itext, поэтому я просто копаюсь в нем. Вот код, который я использую. Oracle вызывает Java для запуска кода.
Как всегда, спасибо за ответы, которые уже пришли, и за любые будущие ... спасибо.
import java.sql.Blob;
import java.sql.ResultSet;
import com.itextpdf.text.Document;
import com.itextpdf.text.pdf.PdfCopy;
import com.itextpdf.text.pdf.PdfReader;
public class PdfMerger {
public static void merge(ResultSet pdfs, Blob dest) throws Exception {
Document doc = new Document();
PdfCopy copy = new PdfCopy(doc, dest.setBinaryStream(0));
doc.open();
while (pdfs.next()) {
PdfReader rdr = new PdfReader(pdfs.getBinaryStream(1));
for (int i = 1; i <= rdr.getNumberOfPages(); i++)
copy.addPage(copy.getImportedPage(rdr, i));
}
copy.close();
doc.close();
}
}
- JM
Спасибо за ответ о:
PdfStamper stamper = new PdfStamper(reader, output);
stamper.setFormFlattening(true);
stamper.close();
Как человек, не являющийся Java, (строго PL / SQL) я очень благодарен за помощь. Где эти три строки будут размещены в коде выше, чтобы сгладить документы?
Я прошу прощения за то, что не знал больше, но я только что был помещен в этот проект. Ценю помощь. Это последний шаг к завершению, и если бы я мог преодолеть это препятствие ....
Будет ли это выглядеть?
CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "PdfMergerTest" as import java.sql.Blob;
import java.sql.ResultSet;
import com.itextpdf.text.Document;
import com.itextpdf.text.pdf.PdfCopy;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
public class PdfMergerTest {
public static void merge(ResultSet pdfs, Blob dest) throws Exception {
Document doc = new Document();
PdfCopy copy = new PdfCopy(doc, dest.setBinaryStream(0));
doc.open();
while (pdfs.next()) {
PdfReader rdr = new PdfReader(pdfs.getBinaryStream(1));
PdfStamper stamper = new PdfStamper(rdr,copy);
stamper.setFormFlattening(true);
stamper.close();
for (int i = 1; i <= rdr.getNumberOfPages(); i++)
copy.addPage(copy.getImportedPage(rdr, i));
}
copy.close();
doc.close();
}
}