当我使用pdfcopy创建pdf时,返回给客户端的pdf为空或只有1行,但是当我在资源管理器中打开它时,它具有我合并的所有数据,我使用itextsharp 5
这是我进行合并的地方:
class Test:
def __init__(self, l):
self.l = l
self.z = None
self.y = None
def func(self):
self.z = self.l
self.y = 123
x = Test('test')
x.func()
print(x.z) # test
print(x.y) # 1 2 3
然后我这样发送
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();
这是在文档查看器document on document viewer上打开的文档
这是在mozzila firefox open on firefox
上打开的同一文档我该如何解决这个问题?我需要在两个地方都显示相同信息的同一文档。
旁注:当我将“ inline”类型更改为“ attachment”时,它仅显示来自第一个img的信息
答案 0 :(得分:1)
您应该删除此变量:
PdfWriter pdfFinal;
由于创建此变量的实例时,PdfCopy pdf_copy
所引用的文档将被覆盖并创建一个新的空文档。