Я пытаюсь сгладить XFA PDF, используя библиотеку iText pdfxfa. При выравнивании PDF-файла с помощью демонстрационного приложения, предоставленного iText, я правильно вставляю все данные в свой PDF-файл. Но когда я пытаюсь сделать это с помощью своего кода, все обстоит иначе. Данные для текстовых полей, флажков встраиваются правильно, но для имен вложений. Под «вложениями» я имею в виду: динамическая форма может содержать внутри себя другой PDF-файл (вложение). «Вложение» можно добавить в PDF-файл с помощью кнопок, имеющихся в XFA-файле PDF. Ниже приведен код, который я использую для выравнивания PDF. Я скопировал XFA PDF с помощью iText RUPS в отдельный файл и использовал его как InputStream
в XFA flattenXDP()
.
private void flattenXFA(String flattenedPDFDest) throws FileNotFoundException, IOException, InterruptedException {
FileOutputStream fos = new FileOutputStream(flattenedPDFDest);
XFAFlattener xfaf = new XFAFlattener();
// The XFA for the PDF is copied from iText RUPS in the phshuman10.xfa.xml file.
xfaf.flattenXDP(new FileInputStream("/home/NetBeansProjects/kitext/resources/phshuman10.xfa.xml"), fos);
fos.close();
}
Ссылка на ZIP-файл всех необходимых PDF-файлов: https://drive.google.com/file/d/0B6w278NcMSCrT2p6cWQxZG0yYVU/view?usp=sharing
Название PDF в zip:
Сглаженный PDF с использованием демонстрации itext: checkResult.pdf
Образец заполненной копии формы: PHSHumanSubjectsAndClinicalTrialsInfo-V1.0 (10).pdf
Сглаженный PDF с использованием моего кода: tt_flattened3.pdf
Файл XFA для PHSHumanSubjectsAndClinicalTrialsInfo-V1.0 (10).pdf: phshuman10.xfa.xml
При необходимости мой сценарий можно адекватно воспроизвести с использованием загруженных ресурсов! Заранее спасибо.