при создании PDF с использованием pdfcopy возвращает пустой документ - PullRequest
0 голосов
/ 10 октября 2018

когда я создаю pdf с использованием pdfcopy, 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();

это документ, открытый в средстве просмотра документов документ в средстве просмотра документов

это тот же самый документ, открытый на mozzila firefox открытый на firefox

как я могу решить эту проблему?Мне нужен один и тот же документ, показывающий одну и ту же информацию в обоих местах.

Примечание: когда я меняю тип "inline" на "attachment", он отображает информацию только с 1-го img

1 Ответ

0 голосов
/ 10 октября 2018

Вы должны удалить эту переменную:

PdfWriter pdfFinal;

Поскольку при создании экземпляра этой переменной документ, на который ссылается PdfCopy pdf_copy, переопределяет и создает новый пустой документ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...