Я создаю веб-приложение, которое заполнит форму PDF с помощью iText. Чтобы создать формы PDF, я сначала использую Microsoft Word для создания шаблона, сохранения его, затем открытия этого файла в Adobe Acrobat Xi Pro, добавления полей формы и сохранения его в формате PDF. Проблема заключается в PDF не спасает с прицепом, так когда я исполню это:iText Ошибка: java.io.IOException: трейлер не найден
PdfReader reader = new PdfReader(templateName);
Он бросает исключение «java.io.IOException: трейлер не найден». Я знаю, что могу читать PDF-файл, если у него есть трейлер, потому что я пробовал читать другие PDF-файлы. Поэтому, похоже, проблема заключается в том, что Acrobat не добавляет трейлер в мой PDF-файл. Даже если я попытаюсь создать PDF-форму с нуля в Acrobat, она не будет сохранена в трейлере.
Неужели кто-нибудь еще сталкивается с этой проблемой? Есть ли какие-то настройки в Acrobat, которые добавят трейлер? Есть ли способ заставить iText читать его без трейлера?
==== ==== UPDATE
я должен был иметь старую версию IText, потому что, когда я скачал последнюю версию я был в состоянии прочитать мой файл PDF. Однако после прочтения файла и штамповки я получил исключение, закрывающее штамп. Код выглядит следующим образом:
PdfReader reader = new PdfReader(templateName);
FileOutputStream os = new FileOutputStream(outputPath);
PdfStamper stamper = new PdfStamper(reader, os);
AcroFields acroFields = stamper.getAcroFields();
List<String> fields = getFieldNames(getContextCd());
for (String field : fields) {
acroFields.setField (field, StringUtil.checkEmpty(request.getParameter(field)));
}
stamper.setFormFlattening(true);
stamper.close();
ошибка я получил:
java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature (Ljava/языки/String; Z) V в com.itextpdf.xmp.impl.XMPMetaParser.createDocumentBuilderFactory (XMPMetaParser.java:423) на com.itextpdf.xmp.impl.XMPMetaParser. (XMPMetaParser.java:71) в com.itextpdf.xmp.XMPMetaFactory.parseFromBuffer (XMPMetaFactory .java: 167) at com.itextpdf.xmp.XMPMetaFactory.parseFromBuffer (XMPMetaFactory.java:153) at com.itextpdf.text.pdf.PdfStamperIm p.close (PdfStamperImp.java:337) в com.itextpdf.text.pdf.PdfStamper.close (PdfStamper.java:208)
только баночка файл я добавил в мой путь к классам является itextpdf-5.5.2. баночка. Нужна ли мне какая-либо из других банок?
Показать нам PDF. Adobe Acrobat всегда добавляет трейлер. Возможно, в игре есть еще одна проблема. Также: какую версию iText вы используете? Я помню, что мы очень строго относились к позиции трейлера: мы реализовали спецификации буквально, и в какой-то момент нам пришлось быть менее строгими, потому что не все PDF-файлы подчиняются спецификациям (но те, которые созданы Acrobat Professional, всегда делают). –
Как я могу показать PDF? Я рад поделиться им, я просто не знаю, как это сделать. – Mike
Поместите его в службу обмена файлами, такую как Dropbox, и поделитесь ссылкой. Снимок экрана не будет, нам нужен PDF. –