【问题标题】:Pdfcopy return a blank pdfpdfcopy 返回一个空白的pdf
【发布时间】:2017-06-20 10:13:32
【问题描述】:

我正在尝试在写入之前将现有的 pdf 复制到另一个中。 这是我将现有 pdf 复制到 ByteOutputStream 的代码:

        documentPDF.open()

    for(int i=0;i<nbPages;){
           copy.addPage(copy.getImportedPage(reader, ++i))
    }
    documentPDF.close()
    copy.close()


   PdfReader reader= new PdfReader("DocDeBase30.pdf");
   reader.selectPages("1-5")
   def documentPDF =new Document()
   ByteArrayOutputStream baos = new ByteArrayOutputStream()
   PdfCopy copy = new PdfCopy(documentPDF, baos)
   documentPDF.open()
    for(int i=0;i<nbPages;){
           copy.addPage(copy.getImportedPage(reader, ++i))
    }
    documentPDF.close()
    copy.close()
    reader.close();
    return baos

然后我使用此步骤将 pdf 文件呈现到我的视图中:

        response.setContentType("application/pdf")
                response.setHeader('Content-disposition', "attachment; filename=intercalaire.pdf")
                response.outputStream << result
                response.outputStream.flush()
   result.close()

其中 result 是返回的 baos。

该文件在我的浏览器中正确打开,但它是空白的,没有任何内容被复制。

供您参考,当我使用物理路径而不是使用 ByteArrayOutputStream 时它工作正常,但我必须在我的应用程序中使用动态文档,因此物理路径不是一个选项。

有什么想法吗?

提前谢谢

【问题讨论】:

  • 也许您正在按照此处的说明刮掉字节:itext.2136553.n4.nabble.com/… 没有看到 PDF,我们几乎无法告诉您有关此问题的其他信息。如果页面存在,但页面内容为空,则您的服务器配置为提供纯文本且无法提供二进制数据。

标签: pdf grails itext


【解决方案1】:

感谢 Bruno Lowagie,您在此处解释的剃须字节是正确的:http://itext.2136553.n4.nabble.com/Blank-PDF-after-it-is-transfered-through-SMTP-td2228773.html

阅读链接后,我通过将 ByteArrayOutputStream 转换为 byte[] 来解决问题 所以这是我必须更改以解决问题的代码:

        byte[] pdf=result.toByteArray()

    response.setContentType("application/octet-stream")
                response.setHeader('Content-disposition', "attachment; filename=intercalaire.pdf")
                response.outputStream << pdf
                response.outputStream.flush()
   result.close()

现在可以正常使用了

再次感谢 Bruno Lowagie

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-19
    • 1970-01-01
    • 2016-03-31
    • 2019-12-20
    • 2017-08-06
    相关资源
    最近更新 更多