Ich versuche, ein vorhandenes PDF in ein anderes zu kopieren, bevor ich es schreibe. hier ist mein Code, um das bestehende PDF in die ByteOutputStream zu kopieren:Pdfcopy gibt ein leeres PDF zurück
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
dann bin Rendering ich die pdf-Datei zu diesem Schritt meiner Ansicht nach mit:
response.setContentType("application/pdf")
response.setHeader('Content-disposition', "attachment; filename=intercalaire.pdf")
response.outputStream << result
response.outputStream.flush()
result.close()
wo Ergebnis der zurück baos ist.
Die Datei öffnet korrekt in meinen Browser, aber es ist leer, nichts wurde kopiert.
zu Ihrer Information, es funktioniert gut, wenn ich einen physischen Pfad anstelle von ByteArrayOutputStream verwende, aber ich muss ein dynamisches Dokument in meiner Anwendung verwenden, so dass ein physischer Pfad keine Option ist.
Irgendeine Idee?
thx im Voraus
Vielleicht sind Sie rasieren die Bytes wie hier erklärt: http://itext.2136553.n4.nabble.com/Blank-PDF-after-it-is-transfered-through-SMTP-td2228773. html Ohne das PDF zu sehen, können wir Ihnen nur wenig über dieses Problem erzählen. Wenn die Seiten vorhanden sind, aber der Inhalt der Seiten leer ist, ist Ihr Server so konfiguriert, dass er nur Text bereitstellt und keine Binärdaten liefern kann. –