Невозможно прочитать форму (acroform) из PDF, используя pdfbox и iText - PullRequest
0 голосов
/ 23 февраля 2019

У меня есть много PDF-файлов (Версия: 4) от 2007 года, которые, очевидно, имеют формы, но объект AcroForm в pdfbox и iText 5 либо пуст, либо пуст.

Почему я считаю, что PDF-файлысодержит формы? Потому что в метаданных я вижу ссылки на XFD-файлы

В целях конфиденциальности данных я не могу предоставить файлы PDF.

AcroForm / AcroFields

iText

AcroFields acroFields = reader.getAcroFields();
if (acroFields.getFields().size() == 0) {
  System.err.println("No acroFields");
  return;
}

вывод : нет acroFields

pdfbox

PDDocumentCatalog docCatalog = doc.getDocumentCatalog();
PDAcroForm acroForm = docCatalog.getAcroForm();
if (acroForm == null) {
  System.err.println("No AcroForm");
  return;
}

if (acroForm.hasXFA()) {
  System.out.println("doc has XFA");
  acroForm.getXFA();
  return;
}

вывод нет AcroForm

Метаданные

PDF-Version: 4
CreationDate = D:20071019093057-04'00'
Producer = Acrobat Distiller 7.0 (Windows)
Author = name
Title = filename.xfd
Creator = PScript5.dll Version 5.2
ModDate = D:20071019093057-04'00'

XMP-вывод

<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="3.1-701">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
         <pdf:Producer>Acrobat Distiller 7.0 (Windows)</pdf:Producer>
      </rdf:Description>
      <rdf:Description rdf:about=""
            xmlns:xap="http://ns.adobe.com/xap/1.0/">
         <xap:CreatorTool>PScript5.dll Version 5.2</xap:CreatorTool>
         <xap:ModifyDate>2007-10-19T09:30:57-04:00</xap:ModifyDate>
         <xap:CreateDate>2007-10-19T09:30:57-04:00</xap:CreateDate>
      </rdf:Description>
      <rdf:Description rdf:about=""
            xmlns:dc="http://purl.org/dc/elements/1.1/">
         <dc:format>application/pdf</dc:format>
         <dc:title>
            <rdf:Alt>
               <rdf:li xml:lang="x-default">filename.xfd</rdf:li>
            </rdf:Alt>
         </dc:title>
         <dc:creator>
            <rdf:Seq>
               <rdf:li>name</rdf:li>
            </rdf:Seq>
         </dc:creator>
      </rdf:Description>
      <rdf:Description rdf:about=""
            xmlns:xapMM="http://ns.adobe.com/xap/1.0/mm/">
         <xapMM:DocumentID>uuid:6161773b-92f4-4954-a368-eed868c10438</xapMM:DocumentID>
         <xapMM:InstanceID>uuid:7737a837-0df8-4daa-9683-3547663fccaa</xapMM:InstanceID>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>

1 Ответ

0 голосов
/ 25 февраля 2019

Почему я считаю, что PDF-файлы содержат формы?Потому что в метаданных я вижу ссылки на XFD-файлы

Это просто означает, что PDF-файлы были сгенерированы из некоторого файла XFD, но они могут просто содержать плоскую копию текущего содержимого XFD.

acroForm == null указывает на то, что в pdf нет допустимой центральной структуры формы.Максимум может быть несколько виджетов поля формы, связанных с некоторыми страницами.

...