In diesem Artikel erfahren Sie, wie Sie eine PDF Datei von Grund auf programmgesteuert in Java erstellen.

Erstellen Sie PDF Dokumente mit Java

PDF ist zu einem häufig verwendeten Dateiformat zum Erstellen verschiedener Arten von Dokumenten geworden. Verschiedene Branchen haben die PDF-Automatisierung für die Dokumentenerstellung wie Quittungen, Rechnungen, Geschäftsberichte usw. übernommen. Dieser Artikel behält solche Szenarien im Auge und behandelt, wie Sie PDF Dateien in Java erstellen. Die Codebeispiele zeigen, wie Sie eine PDF Datei von Grund auf neu erstellen und Text, Bilder, Tabellen und andere Elemente in Java in diese PDF Datei einfügen.

Java API zum Erstellen von PDFs – kostenloser Download {#Java PDF API}

Aspose.PDF for Java ist eine API zur Bearbeitung von PDF Dateien, mit der Sie PDF Dateien aus Java Anwendungen heraus erstellen können. Mit der API können Sie sowohl einfache als auch komplexe PDF Dokumente erstellen. Aspose.PDF for Java kann entweder als JAR heruntergeladen oder in Maven-basierten Anwendungen installiert werden.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>20.11</version>
    <classifier>jdk17</classifier>
</dependency>

Erstellen Sie eine PDF Datei in Java

Im Folgenden finden Sie die Schritte, um eine einfache PDF Datei von Grund auf neu zu erstellen und einen Text darin einzufügen.

Das folgende Codebeispiel zeigt, wie Sie eine PDF Datei mit Java erstellen.

// Vollständige Beispiele und Datendateien finden Sie unter https://github.com/aspose-pdf/Aspose.PDF-for-Java
// Dokumentenobjekt initialisieren
Document document = new Document();
 
//Seite hinzufügen
Page page = document.getPages().add();
 
// Text zu neuer Seite hinzufügen
page.getParagraphs().add(new TextFragment("Hello World!"));
 
// Aktualisiertes PDF speichern
document.save("HelloWorld_out.pdf");

Erstellen Sie eine PDF Datei mit Textformatierung in Java

Schauen wir uns nun an, wie Sie Formatierungen auf den Text im PDF Dokument anwenden. Die Textformatierung kann Schriftart, Schriftgröße, Farbe, Position usw. umfassen. Im Folgenden sind die Schritte zum Ausführen dieses Vorgangs aufgeführt.

  • Verwenden Sie die Klasse Document, um ein neues PDF Dokument zu erstellen oder ein vorhandenes zu laden.
  • Rufen Sie die Seite auf, auf der Sie den Text platzieren möchten.
  • Erstellen Sie ein Objekt von TextFragment, um den Text und andere Formatierungsoptionen wie Position, Schriftart, Farbe, Größe usw. festzulegen.
  • Verwenden Sie die Klasse TextBuilder, um das TextFragment objekt zur Seite hinzuzufügen.
  • Verwenden Sie die Methode Document.save(String), um das PDF Dokument zu speichern.

Das folgende Codebeispiel zeigt, wie Sie eine PDF Datei erstellen und die Textformatierung mit Java anwenden.

// PDF Dokument laden
Document document = new Document();

// Seite hinzufügen
Page page = document.getPages().add();

// Textfragment erstellen
TextFragment textFragment = new TextFragment(
		"Text 1: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment.setPosition(new Position(100, 700));
TextFragment textFragment1 = new TextFragment(
		"Text 2: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment1.setPosition(new Position(100, 600));

// Texteigenschaften festlegen
textFragment.getTextState().setFontSize(12);
textFragment.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
textFragment.getTextState().setBackgroundColor(Color.getLightGray());
textFragment.getTextState().setForegroundColor(Color.getRed());

textFragment1.getTextState().setDrawTextRectangleBorder(true);
textFragment1.getTextState().setUnderline(true);
textFragment1.getTextState().setStrikeOut(true);

// Erstellen Sie eine neue Farbe mit dem Musterfarbraum
Color color = new Color();
color.setPatternColorSpace(new GradientAxialShading(Color.getRed(), Color.getBlue()));		
textFragment1.getTextState().setForegroundColor(color);

// TextBuilder objekt erstellen
TextBuilder textBuilder = new TextBuilder(page);

// Hängen Sie die Textfragmente an die PDF-Seite an
textBuilder.appendText(textFragment);
textBuilder.appendText(textFragment1);

// Speichern Sie das PDF Dokument
document.save("Generated-PDF.pdf");

Java PDF Dateien mit Bild erstellen

Im Folgenden finden Sie die Schritte zum Einfügen eines Bildes in eine PDF Datei mit Aspose.PDF for Java.

  • Erstellen Sie ein Dokument objekt, um das PDF Dokument zu erstellen oder zu öffnen.
  • Rufen Sie die Seite, der Sie ein Bild hinzufügen möchten, im Objekt Seite ab.
  • Fügen Sie das Bild zur Sammlung Page.getResources() hinzu.
  • Verwenden Sie Operatoren, um das Bild auf der Seite zu platzieren:
    • GSpeichern operator to save the current graphical state.
    • Matrix verketten operator to specify where the image is to be placed.
    • Tun operator to draw the image on the page.
    • Verwenden Sie schließlich den Operator GRestore, um den aktualisierten grafischen Zustand zu speichern.
  • Speichern Sie die PDF Datei.

Das folgende Codebeispiel zeigt, wie Sie in Java ein Bild in eine PDF Datei einfügen.

// Vollständige Beispiele und Datendateien finden Sie unter https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Öffnen Sie ein Dokument
Document pdfDocument1 = new Document("input.pdf");

// Koordinaten festlegen
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// Rufen Sie die Seite auf, der Sie das Bild hinzufügen möchten
Page page = pdfDocument1.getPages().get_Item(1);

// Bild in Stream laden
java.io.FileInputStream imageStream = new java.io.FileInputStream(new java.io.File("input_image1.jpg"));

// Fügen Sie der Bildersammlung der Seitenressourcen ein Bild hinzu
page.getResources().getImages().add(imageStream);

// Verwendung des GSave-Operators: Dieser Operator speichert den aktuellen Grafikstatus
page.getContents().add(new Operator.GSave());

// Erstellen Sie Rechteck und Matrixobjekte
Rectangle rectangle = new Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.getURX() - rectangle.getLLX(), 0, 0, rectangle.getURY() - rectangle.getLLY(), rectangle.getLLX(), rectangle.getLLY() });

// Verwendung des Operators ConcatenateMatrix (Matrix verketten): Definiert, wie das Bild platziert werden muss
page.getContents().add(new Operator.ConcatenateMatrix(matrix));
XImage ximage = page.getResources().getImages().get_Item(page.getResources().getImages().size());

// Verwenden des Do-Operators: Dieser Operator zeichnet ein Bild
page.getContents().add(new Operator.Do(ximage.getName()));

// Verwendung des GRestore-Operators: Dieser Operator stellt den Grafikzustand wieder her
page.getContents().add(new Operator.GRestore());

// Speichern Sie das neue PDF
pdfDocument1.save("Updated_document.pdf");

// Bildstream schließen
imageStream.close();

Erstellen Sie eine Tabelle in einer PDF Datei in Java

Die Tabelle ist eine gute Möglichkeit, die Daten in Form von Zeilen und Spalten zu organisieren. Mit Aspose.PDF können Sie ganz einfach eine Tabelle in ein PDF Dokument einfügen. Im Folgenden sind die Schritte zum Erstellen einer Tabelle aufgeführt.

  • Laden Sie die Quelldatei mit der Klasse Document.
  • Initialisieren Sie eine Tabelle und legen Sie ihre Spalten und Zeilen fest.
  • Legen Sie die Einstellung des Tisches fest (z. B. Rahmen).
  • Füllen Sie die Tabelle, indem Sie ihr Zeilen hinzufügen.
  • Fügen Sie die Tabelle einer Seite hinzu.
  • Speichern Sie die PDF Datei.

Das folgende Codebeispiel zeigt, wie Sie in Java eine Tabelle in PDF Dateien erstellen.

// Vollständige Beispiele und Datendateien finden Sie unter https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Quell-PDF Dokument laden
Document doc = new Document(dataDir + "input.pdf");
// Initialisiert eine neue Instanz der Tabelle
Table table = new Table();
// Stellen Sie die Rahmenfarbe der Tabelle auf LightGray ein
table.setBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// Legen Sie den Rahmen für Tabellenzellen fest
table.setDefaultCellBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// Erstellen Sie eine Schleife, um 10 Zeilen hinzuzufügen
for (int row_count = 1; row_count < 10; row_count++) {
	// Zeile zur Tabelle hinzufügen
	Row row = table.getRows().add();
	// Tabellenzellen hinzufügen
	row.getCells().add("Column (" + row_count + ", 1)");
	row.getCells().add("Column (" + row_count + ", 2)");
	row.getCells().add("Column (" + row_count + ", 3)");
}
// Tabellenobjekt zur ersten Seite des Eingabedokuments hinzufügen
doc.getPages().get_Item(1).getParagraphs().add(table);
// Aktualisiertes Dokument mit Tabellenobjekt speichern
doc.save(dataDir + "document_with_table.pdf");

Erstellen Sie ein Formular in einer PDF Datei in Java

Das PDF Format unterstützt auch das Hinzufügen von Formularen, um Eingaben von den Benutzern zu sammeln. Das Formular kann verschiedene Arten von Feldern wie Textfelder, Optionsfelder usw. enthalten. Die folgenden Schritte zeigen, wie Sie ein einfaches Formular in die PDF Datei einfügen.

  • Laden Sie das PDF Dokument oder erstellen Sie ein neues mit der Klasse Document.
  • Erstellen Sie das Formularfeld, das Sie hinzufügen möchten, z. B. TextBoxField.
  • Legen Sie die Eigenschaften des Felds fest.
  • Fügen Sie das Feld mit der methode pdfDocument.getForm().add(Field, Int) zum Formular der PDF Datei hinzu.
  • Speichern Sie das PDF Dokument.

Das folgende Codebeispiel zeigt, wie Sie ein Formular in einer PDF Datei in Java erstellen.

// Vollständige Beispiele und Datendateien finden Sie unter https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Öffnen Sie ein Dokument
Document pdfDocument = new Document("input.pdf");

// Erstellen Sie ein Feld
TextBoxField textBoxField1 = new TextBoxField(pdfDocument.getPages().get_Item(1), new Rectangle(100, 200, 300, 300));

// Legen Sie den Feldnamen fest
textBoxField1.setPartialName("textbox1");

// Legen Sie den Feldwert fest
textBoxField1.setValue("Text Box");

// Erstellen Sie ein Rahmenobjekt
Border border = new Border(textBoxField1);

// Stellen Sie die Rahmenbreite ein
border.setWidth(5);

// Legen Sie den Strichstil des Rahmens fest
border.setDash(new Dash(1, 1));

// Legen Sie die Feldgrenze fest
textBoxField1.setBorder(border);

// Fügen Sie das Feld dem Dokument hinzu
pdfDocument.getForm().add(textBoxField1, 1);

// Speichern Sie die geänderte PDF Datei
pdfDocument.save("output.pdf");

Lesen Sie mehr über die Formularfelder mit hier.

Lesezeichen in PDF Datei in Java einfügen

Im Folgenden sind die Schritte zum Hinzufügen von Lesezeichen in einer PDF Datei aufgeführt.

  • Öffnen Sie ein PDF Dokument mit dem Objekt Dokument.
  • Dokumentgliederungen zu einer OutlineItemCollection Sammlung hinzufügen.
  • Legen Sie die Zielseitenzahl fest.
  • Fügen Sie das Lesezeichen zur Gliederungssammlung des Dokuments hinzu.
  • Speichern Sie die PDF Datei.

Das folgende Codebeispiel zeigt, wie Sie mit Java Lesezeichen in PDF einfügen.

// Vollständige Beispiele und Datendateien finden Sie unter https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Öffnen Sie das Quell-PDF Dokument
Document pdfDocument = new Document("input.pdf");

// Erstellen Sie ein Lesezeichenobjekt
OutlineItemCollection pdfOutline = new OutlineItemCollection(pdfDocument.getOutlines());
pdfOutline.setTitle("Test Outline");
pdfOutline.setItalic(true);
pdfOutline.setBold(true);

// Legen Sie die Zielseitenzahl fest
pdfOutline.setAction(new GoToAction(pdfDocument.getPages().get_Item(1)));

// Fügen Sie ein Lesezeichen in der Gliederungssammlung des Dokuments hinzu.
pdfDocument.getOutlines().add(pdfOutline);

// Speichern Sie das Update-Dokument
pdfDocument.save("output.pdf");

Holen Sie sich eine kostenlose Lizenz

Sie können eine kostenlose temporäre Lizenz erhalten, um die API ohne Evaluierungseinschränkungen zu testen.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie PDF Dateien von Grund auf in Java erstellen. Darüber hinaus haben die Java-Codebeispiele demonstriert, wie Text, Bilder, Tabellen, Formulare und Lesezeichen in neue oder vorhandene PDF Dateien eingefügt werden. Weitere Informationen zur Java PDF API finden Sie unter Dokumentation.

Siehe auch