小编Rob*_*ett的帖子

copyAcroForm的替代方案是什么?

目前,我们正在将代码库从iText 2.1.7移植到iText 5.5.0(是的,我知道..我们花了一点时间;-)。好吧..“现在” copyAcroForm已经取代了Dodo,我正在努力寻找该代码的替代方案:

  File outputFile = new File...
  Document document = new Document();
  FileOutputStream fos = new FileOutputStream(outputFile);
  PdfCopy subjobWriter = new PdfCopy(document, fos);
  document.open();
  PdfReader reader = new PdfReader(generationReader);
  for (int i=1; i<=reader.getNumberOfPages(); i++) {
    PdfImportedPage page = subjobWriter.getImportedPage(reader, i);
    subjobWriter.addPage(page);
  }
  PRAcroForm form = reader.getAcroForm();
  if (form != null)
    subjobWriter.copyAcroForm(reader);
  subjobWriter.freeReader(reader);
  reader.close();
  subjobWriter.close();
  document.close();
  fos.close();
Run Code Online (Sandbox Code Playgroud)

但还没有真正找到任何东西。我读了4.34或以上的变更日志,因此我显然应该使用PdfCopy.addDocument()。我试过了,并注释掉了其他代码,例如:

  ...
  PdfReader reader = new PdfReader(generationReader);
  reader.consolidateNamedDestinations();
  subjobWriter.addDocument(reader);
  subjobWriter.freeReader(reader);
  subjobWriter.setOutlines(SimpleBookmark.getBookmark(reader));
  ...
Run Code Online (Sandbox Code Playgroud)

但这也无济于事。

问题是,除了表格(及其字段和内容)以外,原始PDF的所有内容都被复制了,或者看起来整个表格已被展平。

由于所有示例都可以使用不再存在的copyAcroForm()或已弃用的PdfCopyFields类,因此itextpdf.com和“ iText in Action,第二版”中的所有示例也都使用copyAcroForm(),我不知道如何解决这个问题。有人知道吗?

罗格

itext

1
推荐指数
1
解决办法
3675
查看次数

标签 统计

itext ×1