Zwei PDF-Dateien mit Java zusammenführen
Das Zusammenführen von PDF-Dokumenten zu einer einzigen Datei ist eine häufige Anforderung in Dokumentenverwaltungspipelines. Die Konsolidierung von Monatsberichten, das Zusammenstellen von mehrteiligen Formularen und das Bündeln von Rechnungen sind allesamt häufige Szenarien. IronPDF for Java reduziert diesen Vorgang auf einen einzigen Methodenaufruf: PdfDocument.merge(). Übergeben Sie ihm zwei oder mehr geladene Dokumente und Sie erhalten ein kombiniertes PDF zurück, bei dem alle Formatierungen, Schriften und eingebetteten Bilder genau so erhalten bleiben, wie sie waren.
Dieser Leitfaden führt durch die vier praktischsten Zusammenführungs-Szenarien: das Kombinieren dynamisch erzeugter PDFs, das Zusammenführen vorhandener Dateien von der Festplatte, das Handhaben größerer Chargen mit einem listenbasierten Ansatz und das Steuern der Seitenreihenfolge im endgültigen Dokument.
Schnellstart: PDFs in Java zusammenführen
- Fügen Sie die IronPDF-Abhängigkeit Ihrem Maven
pom.xmlhinzu - Importieren Sie
com.ironsoftware.ironpdf.PdfDocument - Laden Sie Quelldateien mit
PdfDocument.fromFile() - Rufen Sie
PdfDocument.merge(pdf1, pdf2)auf, um ein kombiniertes Dokument zu erstellen - Speichern Sie das Ergebnis mit
merged.saveAs()
```java {title="Schnellstart: Basis-PDF-Zusammenführung"} //:path=/static-assets/pdf/content-code-examples/how-to/how-to-merge-two-pdf-files-java-tutorial/quickstart-merge.java import com.ironsoftware.ironPdf.PdfDocument; import java.nio.file.Paths;
// Laden Sie zwei vorhandene PDF-Dokumente von der Festplatte PdfDocument pdf1 = PdfDocument.fromFile(Paths.get("document1.pdf")); PdfDocument pdf2 = PdfDocument.fromFile(Paths.get("document2.pdf"));
// In ein einziges Dokument zusammenführen; Formatierung und Bilder bleiben erhalten PdfDocument merged = PdfDocument.merge(pdf1, pdf2);
// Schreiben Sie das kombinierte PDF auf die Festplatte merged.saveAs(Paths.get("merged-output.pdf"));
<div class="hsg-featured-snippet">
<h3>Minimaler Arbeitsablauf (5 Schritte)</h3>
1. Fügen Sie IronPDF als Maven- oder Gradle-Abhängigkeit hinzu
2. Importieren Sie `com.ironsoftware.ironpdf.PdfDocument`
3. Laden Sie jedes PDF mit `PdfDocument.fromFile(Paths.get("file.pdf"))`
4. Rufen Sie `PdfDocument.merge(pdf1, pdf2)` auf oder übergeben Sie ein `PdfDocument[]`-Array für Stapel
5. Speichern Sie das zusammengeführte Ergebnis mit `merged.saveAs(Paths.get("output.pdf"))`
</div>
## Was sind die Voraussetzungen für das Zusammenführen von PDFs in Java?
Bestätigen Sie vor dem Schreiben von Code, dass diese vier Anforderungen erfüllt sind:
1. **Java 8 oder höher** installiert mit der `JAVA_HOME`-Umgebungsvariable gesetzt. Siehe den [Leitfaden zum Herunterladen und Installieren von Java](https://www.java.com/en/download/help/download_options.html#windows) für plattformspezifische Anweisungen.
2. **Eine Java IDE** (dieser Leitfaden verwendet [JetBrains IntelliJ IDEA](https://www.jetbrains.com/idea/download/#section=windows), obwohl [Eclipse](https://www.eclipse.org/downloads/) genauso gut funktioniert).
3. **Maven oder Gradle** in Ihrer IDE konfiguriert. Wenn Sie neu in Maven sind, deckt der [ JetBrains Maven-Installationsleitfaden](https://www.jetbrains.com/idea/guide/tutorials/marco-codes-maven/installing-maven/) die Einrichtung in IntelliJ ab.
4. **Die IronPDF-Bibliothek**, die als Projektabhängigkeit hinzugefügt wurde. Die [IronPDF for Java Installationsanleitung](https://ironpdf.com/java/docs/) erklärt sowohl die Maven- als auch die Gradle-Ansätze.
Hinweis:IronPDF for Java unterstützt Java 8 und höher. Es ist nicht erforderlich, bestehende Projekte auf ein neueres JDK zu aktualisieren, um es zu verwenden.
## Wie installiere ich IronPDF for Java?
IronPDF for Java wird über [Maven Central](https://search.maven.org) vertrieben, sodass das Hinzufügen zu Ihrem Projekt nur wenige Konfigurationszeilen erfordert. Keine manuellen JAR-Downloads erforderlich.
Öffnen Sie IntelliJ IDEA und erstellen Sie ein neues Maven-Projekt aus ** Datei -> Neu -> Projekt**, wobei Sie Maven als Build-System auswählen.

Benennen Sie das Projekt und klicken Sie auf **Fertigstellen**. IntelliJ öffnet `pom.xml` automatisch, sobald die Projektstruktur generiert ist.

Fügen Sie den folgenden Abhängigkeitsblock in den `<dependencies>`-Abschnitt von `pom.xml` ein. Überprüfen Sie immer [Maven Central auf die neueste IronPDF-Version](https://central.sonatype.com/artifact/com.ironsoftware/ironpdf) und ersetzen Sie die Versionszeichenfolge durch die aktuelle.
```xml {title="pom.xml: IronPDF-Abhängigkeit"}
//:path=/static-assets/pdf/content-code-examples/how-to/how-to-merge-two-pdf-files-java-tutorial/pom-dependency.xml
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>2024.9.1</version>
</dependency>

Nach dem Speichern von pom.xml erscheint ein kleines Synchronisierungssymbol oben rechts im Editor. Klicken Sie darauf, um den Maven-Abhängigkeitsdownload auszulösen. Abhängig von Ihrer Verbindungsgeschwindigkeit dauert dies zwischen 15 Sekunden und einigen Minuten und lädt IronPDF zusammen mit allen erforderlichen transitiven Abhängigkeiten herunter.

implementation 'com.ironsoftware:ironpdf:2024.9.1' zu ihren build.gradle Abhängigkeitsblock hinzufügen. Dasselbe Maven Central-Artefakt funktioniert für beide Build-Systeme.Wie erstelle und fusioniere ich neue PDF-Dokumente?
Wenn Quellinhalte zur Laufzeit generiert werden (aus HTML-Vorlagen, Datenbankeinträgen oder Benutzereingaben), besteht der Workflow darin, jedes Stück zuerst als PdfDocument zu rendern und sie dann zu zusammenzuführen.
PdfDocument.renderHtmlAsPdf() konvertiert einen HTML-String in ein PDF im Speicher. Jeder Aufruf erzeugt ein unabhängiges Dokumentobjekt, das direkt an merge() übergeben werden kann, ohne dass Zwischendateien auf der Festplatte erstellt werden müssen.
HTML-Abschnitte vor dem Zusammenführen rendern
Das unten stehende Beispiel rendert zwei separate HTML-Strings in den Speicher und kombiniert sie zu einem einzigen Dokument. Dieses Muster eignet sich gut für Berichtsgeneratoren, Rechnungsbuilder und alle Systeme, bei denen Inhalte programmatisch aus Vorlagen oder Datenbanksätzen zusammengestellt werden.
```java {title="Dynamisch erzeugte PDFs zusammenfügen"} //:path=/static-assets/pdf/content-code-examples/how-to/how-to-merge-two-pdf-files-java-tutorial/merge-html-pdfs.java import com.ironsoftware.ironPdf.PdfDocument; import java.io.IOException; import java.nio.file.Paths;
public class Main { public static void main(String[] args) throws IOException { // HTML-Inhalt für jeden Dokumentabschnitt String htmlA = "
Erster Teil des Berichts.
"; String htmlB = "Zweiter Teil des Berichts.
";// Rendern Sie jeden HTML-String als PDF im Speicher -- keine Festplattenschreibvorgänge erforderlich PdfDocument pdfA = PdfDocument.renderHtmlAsPdf(htmlA); PdfDocument pdfB = PdfDocument.renderHtmlAsPdf(htmlB);
// Beide Dokumente zu einem einzigen kombinierten PDF zusammenführen PdfDocument merged = PdfDocument.merge(pdfA, pdfB);
// Speichern des zusammengeführten Ergebnisses merged.saveAs(Paths.get("assets/merged.pdf")); } }
Die zusammengeführte Ausgabe verkettet Seiten in der Reihenfolge der Argumente: `pdfA` Seiten erscheinen vor `pdfB` Seiten. Für eine vollständige Anleitung zur HTML-Rendering-Engine sehen Sie das [IronPDF HTML zu PDF Tutorial for Java](https://ironpdf.com/java/tutorials/html-to-pdf/).

WichtigDer `renderHtmlAsPdf()` Aufruf verwendet eine auf Chromium basierende Rendering-Engine. Volles CSS, Web-Schriftarten und eingebettete Bilder werden vollständig unterstützt -- die Ausgabe entspricht dem, was ein Browser anzeigen würde.
## Wie fusioniere ich vorhandene PDF-Dateien?
Das Laden und Zusammenführen von PDFs von der Festplatte folgt demselben Muster, indem `PdfDocument.fromFile()` verwendet wird, um jede Datei in den Speicher zu lesen, bevor die Objekte an `merge()` übergeben werden.
Dieser Ansatz eignet sich für jeden Workflow, bei dem die Quelldokumente bereits existieren — gescannte Rechnungen, exportierte Berichte oder Dateien, die von einem externen System empfangen wurden. IronPDF liest die PDF-Struktur und fusioniert Seiten, ohne die ursprünglichen Quelldateien zu verändern.
### Dateien von der Festplatte laden und kombinieren
```java {title="Vorhandene PDF-Dateien von der Festplatte zusammenführen"}
//:path=/static-assets/pdf/content-code-examples/how-to/how-to-merge-two-pdf-files-java-tutorial/merge-existing-files.java
import com.ironsoftware.ironPdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Paths;
public class Main {
public static void main(String[] args) throws IOException {
// Laden Sie zwei bestehende PDF-Dateien von der Festplatte
PdfDocument pdfA = PdfDocument.fromFile(Paths.get("assets/invoice-january.pdf"));
PdfDocument pdfB = PdfDocument.fromFile(Paths.get("assets/invoice-february.pdf"));
// Zu einem Dokument kombinieren
PdfDocument merged = PdfDocument.merge(pdfA, pdfB);
// Zusammengeführte Ausgabe schreiben -- Originale bleiben unberührt
merged.saveAs(Paths.get("assets/invoices-q1.pdf"));
}
}
Der merge() Aufruf erzeugt ein neues PdfDocument Objekt; weder pdfA noch pdfB wird modifiziert. Um die Operation umzukehren — Seiten wieder herauszuziehen — siehe das PDFs aufteilen Beispiel for Java.

Welche Dateiformate akzeptiert fromFile()?
PdfDocument.fromFile() akzeptiert standardmäßige .pdf Dateien. Für Dokumente, die vor dem Zusammenführen konvertiert werden müssen - wie HTML-Dateien, Bilddateien oder andere Formate - verwenden Sie zuerst die entsprechende Rendering-Methode (renderHtmlAsPdf(), renderUrlAsPdf()), um ein PdfDocument zu erzeugen, und übergeben Sie dann dieses Objekt an merge().
fromFile() übergebenen Pfade können absolut oder relativ zum Arbeitsverzeichnis sein. Die Verwendung von Paths.get() (aus java.nio.file) ist der empfohlene Ansatz für plattformübergreifende Kompatibilität.Die Iron Suite spielt eine entscheidende Rolle in unseren Operationen. Diese Werkzeuge erhöhen die Effizienz im gesamten Unternehmen, einschließlich der Erstellung von Grundrissen und der Verbesserung des Bestandsmanagements.
Wie kann ich mehr als zwei PDF-Dateien zusammenführen?
PdfDocument.merge() akzeptiert eine Argumentliste variabler Länge, also ist das Zusammenführen von drei oder vier Dokumenten syntaktisch nicht anders als das Zusammenführen von zwei. Für sammlungen mit dynamischer Größe - bei denen die Anzahl der PDFs zur Laufzeit bestimmt wird - ist die Übergabe eines PdfDocument[] Arrays der sauberere Ansatz.
Varargs und listenbasierte Muster
Die beiden untenstehenden Muster erzeugen identische Ergebnisse. Wählen Sie den direkten Varargs-Aufruf, wenn die Dateianzahl fix ist, und das Liste-zu-Array-Muster, wenn Sie die Sammlung programmatisch aufbauen:
```java {title="Vier PDFs zusammenführen -- Varargs und Listenansätze"} //:path=/static-assets/pdf/content-code-examples/how-to/how-to-merge-two-pdf-files-java-tutorial/merge-multiple-files.java import com.ironsoftware.ironPdf.PdfDocument; import java.io.IOException; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List;
public class Main { public static void main(String[] args) throws IOException { // Laden Sie vier bestehende PDF-Dateien PdfDocument pdfA = PdfDocument.fromFile(Paths.get("assets/chapter-1.pdf")); PdfDocument pdfB = PdfDocument.fromFile(Paths.get("assets/chapter-2.pdf")); PdfDocument pdfC = PdfDocument.fromFile(Paths.get("assets/chapter-3.pdf")); PdfDocument pdfD = PdfDocument.fromFile(Paths.get("assets/chapter-4.pdf"));
// Muster 1: direkter Varargs-Aufruf — funktioniert gut für eine feste Anzahl von Dateien PdfDocument merged = PdfDocument.merge(pdfA, pdfB, pdfC, pdfD); merged.saveAs(Paths.get("assets/full-document.pdf"));
// Muster 2: bauen Sie zuerst eine Liste auf — bevorzugt, wenn die Dateianzahl dynamisch ist
List
PdfDocument mergedFromList = PdfDocument.merge( pdfList.toArray(new PdfDocument[0]) ); mergedFromList.saveAs(Paths.get("assets/full-document-v2.pdf")); } }
WichtigDie Seitenreihenfolge in der Ausgabe entspricht genau der Argumentreihenfolge. Wenn die Dokumentenreihenfolge wichtig ist - zum Beispiel Kapitel eines Buches oder geordnete Formularabschnitte - sortieren Sie Ihre Liste, bevor Sie `merge()` aufrufen.
### Wie scanne ich ein Verzeichnis und fusioniere alle PDFs?
Wenn die Menge der Eingabedateien zur Kompilierzeit nicht bekannt ist, ist das Lesen von Dateipfaden aus einem Verzeichnis eine natürliche Erweiterung des Listenmusters. Der untenstehende Ausschnitt sammelt alle `.pdf` Dateien aus einem Ordner, sortiert sie nach Dateinamen und fügt sie in der Reihenfolge zusammen.
```java {title="Einen Verzeichnis scannen und alle PDF-Dateien zusammenführen"}
//:path=/static-assets/pdf/content-code-examples/how-to/how-to-merge-two-pdf-files-java-tutorial/merge-directory-pdfs.java
import com.ironsoftware.ironPdf.PdfDocument;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) throws IOException {
Path inputDir = Paths.get("assets/monthly-reports");
// Sammeln Sie alle PDF-Dateien aus dem Verzeichnis, sortiert nach Dateinamen
List<Path> pdfPaths = Files.list(inputDir)
.filter(p -> p.toString().endsWith(".pdf"))
.sorted(Comparator.comparing(Path::getFileName))
.collect(Collectors.toList());
// Jede Datei in ein PdfDocument laden
List<PdfDocument> documents = new ArrayList<>();
for (Path path : pdfPaths) {
documents.add(PdfDocument.fromFile(path));
}
// Alle Dokumente zusammenführen und das Ergebnis speichern
PdfDocument combined = PdfDocument.merge(
documents.toArray(new PdfDocument[0])
);
combined.saveAs(Paths.get("assets/annual-report.pdf"));
}
}
Dieses Muster handhabt jede Ordnergröße. Für große Mengen (50+ Dateien) erwägen Sie das Laden und Zusammenführen in Abschnitten, um den Spitzen-Speicherverbrauch zu begrenzen, anstatt jede Datei gleichzeitig zu laden.
pdfPaths mit einem benutzerdefinierten Comparator, wenn Ihre Dateien einem datumsbasierten Benennungsschema folgen (z.B., 2024-01.pdf, 2024-02.pdf). Alphabetische Sortierung funktioniert natürlich für nullgepolsterte Monatsnummern.Nach dem Zusammenführen möchten Sie möglicherweise das kombinierte Dokument weiter verfeinern. IronPDF for Java unterstützt das Hinzufügen benutzerdefinierter Kopf- und Fußzeilen, das Anwenden von Wasserzeichen und das Komprimieren der endgültigen Ausgabe, um die Dateigröße vor der Lieferung zu reduzieren.
Was sind die nächsten Schritte für das Zusammenführen von PDFs in Java?
Dieser Leitfaden behandelte vier Zusammenführungsmuster mit IronPDF for Java: das Rendern von HTML-Inhalten zu PDF vor dem Zusammenführen, das Laden und Kombinieren bestehender Dateien von der Festplatte, das Handhaben von Dokumentbatches variabler Länge mit einer Liste und das Scannen eines Verzeichnisses, um alle PDFs automatisch zusammenzuführen. In jedem Fall bewahrt PdfDocument.merge() die Quellformatierung - Schriftarten, Bilder und Seitenlayout werden ohne zusätzliche Konfiguration beibehalten.
Um weiter zu entdecken, was IronPDF for Java leisten kann, sehen Sie sich das Java merge PDF Tutorial für zusätzliche Muster an oder überprüfen Sie wie Sie PDFs digital in Java signieren, um Signaturen zur kombinierten Ausgabe hinzuzufügen. Für seitenbezogene Operationen -- Neuanordnung, Entfernung oder Extraktion einzelner Seiten -- siehe das Beispiel zum Löschen bestimmter Seiten.
Bereit, es in Ihrem eigenen Projekt auszuprobieren? Starten Sie Ihre kostenlose Testversion -- keine Kreditkarte erforderlich. Wenn Sie bereit sind zum Einsatz, sehen Sie sich die Lizenzierungsoptionen für Teams und Unternehmenseinsatz an.
Häufig gestellte Fragen
Wie lassen sich PDF-Dateien in Java am einfachsten zusammenführen?
Der einfachste Weg ist PdfDocument.merge(pdf1, pdf2) von IronPDF for Java. Laden Sie jede Datei mit PdfDocument.fromFile(Paths.get("file.pdf")), übergeben Sie beide an merge() und speichern Sie das Ergebnis mit merged.saveAs().
Was sind die Voraussetzungen für das Zusammenführen von PDFs mit IronPDF in Java?
Sie benötigen mindestens Java 8 oder höher mit JAVA_HOME gesetzt, eine Java-IDE wie IntelliJ IDEA oder Eclipse, Maven oder Gradle konfiguriert und die IronPDF-Abhängigkeit, die Ihrer pom.xml oder build.gradle hinzugefügt wurde.
Kann ich mehr als zwei PDF-Dateien auf einmal in Java zusammenführen?
Ja. PdfDocument.merge() akzeptiert eine Argumentliste variabler Länge, sodass Sie direkt drei oder mehr PdfDocument-Objekte übergeben können. Für eine dynamische Sammlung wandeln Sie eine List<PdfDocument> in ein Array um, indem Sie list.toArray(new PdfDocument[0]) verwenden und dieses an merge() übergeben.
Wie steuere ich die Seitenreihenfolge beim Zusammenführen von PDFs in Java?
Die Seiten erscheinen im Ergebnis in der gleichen Reihenfolge, in der die Argumente an merge() übergeben werden. Wenn Sie eine Liste dynamisch aufbauen, sortieren Sie sie vor dem Aufruf von merge() – zum Beispiel nach Dateiname oder nach einem Datumsfeld in den Dokumentmetadaten.
Wie kann ich in Java aus HTML generierte PDFs zusammenführen?
Rufen Sie PdfDocument.renderHtmlAsPdf(htmlString) für jeden HTML-Abschnitt auf, um ein PdfDocument im Speicher zu erzeugen und übergeben Sie diese Objekte dann an PdfDocument.merge(). Es werden keine Zwischen-Dateien auf der Festplatte geschrieben.
Welche zusätzlichen PDF-Operationen kann ich nach dem Zusammenführen in Java ausführen?
Nach dem Zusammenführen unterstützt IronPDF for Java das Hinzufügen von Kopf- und Fußzeilen, das Anwenden benutzerdefinierter Wasserzeichen, das Komprimieren des Ergebnisses zur Reduzierung der Dateigröße, das Hinzufügen von digitalen Signaturen, das Extrahieren oder Löschen einzelner Seiten und das Ausfüllen von Formularfeldern.


