【问题标题】:when creating a pdf using pdfcopy returns a empty document使用 pdfcopy 创建 pdf 时返回一个空文档
【发布时间】:2018-10-11 04:26:36
【问题描述】:

当我使用 pdfcopy 创建 pdf 时,返回给客户端的 pdf 为空或只有 1 行,但是当我在资源管理器上打开它时,它包含我合并的所有数据,我使用的是 itextsharp 5

这是我进行合并的地方:

try {
    document.close();

    PdfReader reader2 = new PdfReader(pdfStream.toByteArray());
    //se crea el documento final
    Document documentFinal=  new Document(PageSize.LETTER, left, right, top, bottom);
    PdfCopy pdf_copy = new PdfCopy(documentFinal, pdfStreamFinal);
    PdfWriter pdfFinal = PdfWriter.getInstance(documentFinal, pdfStreamFinal);
    pdfFinal.setInitialLeading(20);

    documentFinal.open();

    //CONTENIDO PARA PODER UNIR LOS PDFs
    PdfPTable tContenido = new PdfPTable(1);
    tContenido.addCell(Celda(pdfEl.textocelda(false, "DESCRIPCIÓN GENERAL", 6.0f), false, 1,1, BaseColor.WHITE));
    documentFinal.add(tContenido);  

    //INICIAR CARGA DE DATOS EN DOCUMENTO FINAL
    PdfReader readerR = new PdfReader(reader2);
    int pagesR = readerR.getNumberOfPages();
    for (int p = 1; p <= pagesR; p++)
        pdf_copy.addPage(pdf_copy.getImportedPage(readerR, p));
    readerR.close();

    //se unen los demas PDFs
    for (PdfReader read : readerList) {
        PdfReader reader = new PdfReader(read);
        int pages = reader.getNumberOfPages();
        for (int p = 1; p <= pages; p++)
            pdf_copy.addPage(pdf_copy.getImportedPage(reader, p));
        reader.close();
    }

    documentFinal.close();
    pdf_copy.close();

} catch (BadElementException ex) {
    Logger.getLogger(Calle.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
    Logger.getLogger(Calle.class.getName()).log(Level.SEVERE, null, ex);
} catch (DocumentException ex) {
    Logger.getLogger(Calle.class.getName()).log(Level.SEVERE, null, ex);
}
return pdfStreamFinal.toByteArray();

那我就这样发送

return Response.ok(makePDF.makePDFEjecutivo(idalle)).header("Content-Disposition", "inline; filename=" + pdfName + ".pdf").build();

这是在文档查看器document on document viewer上打开的文档

这是在 mozzila firefox open on firefox 上打开的同一个文档

我该如何解决这个问题?我需要在两个地方显示相同信息的同一份文件。

旁注:当我将“内联”类型更改为“附件”时,它只显示来自第一个 img 的信息

【问题讨论】:

    标签: java itext


    【解决方案1】:

    你应该删除这个变量:

    PdfWriter pdfFinal;
    

    因为当您创建此变量的实例时,PdfCopy pdf_copy 引用的文档将被覆盖并创建一个新的空文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-22
      • 2018-02-07
      • 2017-06-04
      • 2018-07-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多