iText Pdf合并复选框问题

时间:2016-09-07 15:18:39

标签: itext

我们正在使用iText Pdf API版本5.5.3,我们正在尝试合并有时包含复选框的pdf文档,我们在servlet输出流中编写pdf文档并在iframe中显示。

它在IE中运行良好(在11中尝试过)但复选框没有出现在Chrome中(在52中尝试过)。

以下是我们用于显示PDF的示例代码。

                    InputStream in = docFile.getImage()
                            .getBinaryStream();
                    reader = new PdfReader(in);
                    pdfReaderList.add(reader);


                    document = new Document(PageSize.A4);
                    byteArrayOutputStream = new ByteArrayOutputStream();
                    PdfCopy copy = new PdfCopy(document, byteArrayOutputStream);
                    document.setMargins(35, 35, 48, 75);
                    document.open();
                    copy.setMargins(35, 35, 48, 75);
                    // add a document

                    Iterator<PdfReader> pdfReader = pdfReaderList.iterator();
                    while (pdfReader.hasNext()){
                        PdfImportedPage page;
                        reader = MCPDFFileWriter.unlockPdf(pdfReader.next());
                        for (int currentPage = 1; currentPage <= reader.getNumberOfPages(); currentPage++) {
                            page = copy.getImportedPage(reader, currentPage);
                            pageNum++;
                            copy.addPage(page);
                            footerNamesList.add(fileName);
                            footerMap.put(footerMap.size() + 1, fileName);

                        }
                    }

                    document.close ();
                    reader.close();
                    copy.close();

我也经历了这个Link,当我使用下面的代码时,给定的解决方案似乎正常工作 -

                    InputStream in = docFile.getImage()
                            .getBinaryStream();
                    reader = new PdfReader(in);
                    pdfReaderList.add(reader);


                    document = new Document(PageSize.A4);
                    byteArrayOutputStream = new ByteArrayOutputStream();
                    PdfCopy copy = new PdfCopy(document, byteArrayOutputStream);
                    document.setMargins(35, 35, 48, 75);
                    document.open();
                    copy.setMargins(35, 35, 48, 75);
                    **copy.setMergeFields();**

                    // add a document
                    **copy.addDocument(reader);**                                   
                    document.close ();
                    reader.close();
                    copy.close();

但是我有时会遇到OutOfMemoryError,并且想知道copy.setMergeFields();copy.addDocument(reader);是否存在任何已知问题以及如何克服它?

Chrome中也报告了一个错误(想到插件问题),样本pdf附在那里

0 个答案:

没有答案