Erstellen von PDF-Dateien mit iText ohne speichern in einer temp-Datei
code:
private String FILE = "e:/FirstPdf.pdf";
public void preparePDF() {
try {
Document document = new Document();
PdfWriter.getInstance(document, pdfFile);
document.open();
addTitlePage(document);
document.close();
} catch (Exception e) {
e.printStackTrace();
}
}
alles funktioniert einwandfrei, aber was ich will ist, nicht speichern Sie die pdf-Datei in einen temporären Ordner, sondern nur legen Sie es auf eine private File
oder so etwas. Ich erstelle eine web-Anwendung, die eine Funktion zum download der PDF-Dateien, ich brauche nur die pdf werden innerhalb einer Variablen.
- PDF nicht speichern innerhalb einer Variablen, speichern Sie es an einen bestimmten Speicherort speichern Sie den vollständigen Pfad in eine variable und übergeben, der Pfad zum herunterladen der Datei-Funktion, um es herunterzuladen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
PdfWriter
hat eine statische MethodegetInstance(Document document, OutputStream os)
. Verwenden Sie eineByteArrayOutputStream
speichern Sie den Inhalt in ein byte-array. Später, dieses array verwenden, um die Datei zu senden an den Benutzer. Vielleicht müssen Sie wickeln Sie das array in eineByteArrayInputStream
.Diese Weise müssen Sie nicht zum speichern der Datei auf dem system.
Können Sie
ByteArrayOutputStream
, wenn Sie nicht möchten, speichern Sie diePDF
. werfen Sie einen Blick auf diese BeispielSchreiben Sie die
document
zu einemOutputStream
anstelle einer Datei. Wenn Sie wollen in der Lage sein zu generieren und zum download der PDF-Datei dynamisch ist (d.h. wenn es doesn'; t nehmen mehr als eine Sekunde oder so zu generieren), dann könnte man ein servlet erstellen und schreibenHttpServletResponse.getOutputStream()
.