Łączenie plików PDF w jeden plik PDF za pomocą języka Python
IronPDF for Python zapewnia bezpośrednie rozwiązanie do łączenia wielu dokumentów PDF w jeden plik przy użyciu metody PdfDocument.Merge(), obsługując zarówno łączenie dwóch plików, jak i operacje wsadowe w celu wydajnego łączenia wielu plików PDF.
PDF (Portable Document Format) jest standardem do udostępniania dokumentów, które muszą wyglądać identycznie na różnych platformach i w aplikacjach. Czy konsolidujesz raporty, łączysz zeskanowane dokumenty, czy składaczysz formularze wieloczęściowe, łączenie treści PDF z różnych źródeł jest powtarzającym się wymaganiem w przepływach pracy związanych z biznesem i przetwarzaniem danych.
IronPDF obsługuje tę operację w Pythonie jednym wywołaniem metody. Ten przewodnik obejmuje instalację, podstawowe łączenie dwóch plików oraz operacje grupowe do jednoczesnego łączenia wielu dokumentów.
Szybki start: Łączenie plików PDF w języku Python
#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/quickstart.py
from ironpdf import *
renderer = ChromePdfRenderer()
pdf_a = renderer.RenderHtmlAsPdf("<p>Document A</p>")
pdf_b = renderer.RenderHtmlAsPdf("<p>Document B</p>")
merged = PdfDocument.Merge([pdf_a, pdf_b])
merged.SaveAs("merged.pdf")#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/quickstart.py
from ironpdf import *
renderer = ChromePdfRenderer()
pdf_a = renderer.RenderHtmlAsPdf("<p>Document A</p>")
pdf_b = renderer.RenderHtmlAsPdf("<p>Document B</p>")
merged = PdfDocument.Merge([pdf_a, pdf_b])
merged.SaveAs("merged.pdf")Minimalny proces (5 kroków)
- Zainstaluj bibliotekę Python do scałania plików PDF
- Użyj
RenderHtmlAsPdfdo generowania pojedynczych plików PDF lub załaduj istniejące za pomocąPdfDocument.FromFile - Zastosuj metodę
Merge, aby połączyć pliki PDF w jedenPdfDocument - Zapisz scalony dokument za pomocą
opcji "Zapisz jako" - Dla wielu PDF-ów przekaż listę obiektów
PdfDocumentdoMerge
Jak zainstalować IronPDF for Python?
IronPDF jest dostępny jako pakiet Python przez pip. Wymaga Pythona 3.x i działa na Windows i Linux bez dodatkowych zależności systemowych dla standardowych operacji łączenia. Pakiet zawiera silnik renderujący oparty na Chrome, który obsługuje konwersję HTML na PDF wewnętrznie.
Zainstaluj bibliotekę IronPdf za pomocą pip, używając następującego polecenia:
#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/install.sh
pip install ironpdf#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/install.sh
pip install ironpdfAby uzyskać szczegółowe instrukcje instalacji i pomóc w typowych problemach, takich jak "Module Not Defined" błędy lub problemy z uprawnieniami, odnieś się do oficjalnej dokumentacji.
Jakie deklaracje importowania są wymagane?
W swoim skrypcie Pythona uwzględnij następujące deklaracje importów, aby uzyskać dostęp do funkcji generowania i łączenia PDF IronPDF:
#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/imports.py
from ironpdf import *
# Set your license key for production use
License.LicenseKey = "YOUR-LICENSE-KEY-HERE"#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/imports.py
from ironpdf import *
# Set your license key for production use
License.LicenseKey = "YOUR-LICENSE-KEY-HERE"Dla aplikacji produkcyjnych, skonfiguruj swój klucz licencyjny, aby odblokować pełny zestaw funkcji IronPDF. Dostępna jest bezpłatna wersja próbna - rozpocznij bezpłatną próbę, aby zacząć bez zakupu.
Jak połączyć dwa pliki PDF w języku Python?
Łączenie plików PDF w języku Python obejmuje dwa etapy: utworzenie źródłowych dokumentów PDF, a następnie połączenie ich za pomocą PdfDocument.Merge(). Metoda przyjmuje listę obiektów PdfDocument i generuje nowy, połączony dokument w kolejności, w jakiej elementy pojawiają się na liście.
Poniżej znajduje się kompletny działający przykład:
#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/merge-two-pdfs.py
from ironpdf import *
# HTML content for the first PDF
html_a = """<p> [PDF_A] </p>
<p> [PDF_A] 1st Page </p>
<div style='page-break-after: always;'></div>
<p> [PDF_A] 2nd Page</p>"""
# HTML content for the second PDF
html_b = """<p> [PDF_B] </p>
<p> [PDF_B] 1st Page </p>
<div style='page-break-after: always;'></div>
<p> [PDF_B] 2nd Page</p>"""
# Initialize renderer
renderer = ChromePdfRenderer()
# Convert each HTML string to a PDF document
pdfdoc_a = renderer.RenderHtmlAsPdf(html_a)
pdfdoc_b = renderer.RenderHtmlAsPdf(html_b)
# Merge the two documents into one
merged = PdfDocument.Merge([pdfdoc_a, pdfdoc_b])
# Save the merged result to disk
merged.SaveAs("Merged.pdf")#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/merge-two-pdfs.py
from ironpdf import *
# HTML content for the first PDF
html_a = """<p> [PDF_A] </p>
<p> [PDF_A] 1st Page </p>
<div style='page-break-after: always;'></div>
<p> [PDF_A] 2nd Page</p>"""
# HTML content for the second PDF
html_b = """<p> [PDF_B] </p>
<p> [PDF_B] 1st Page </p>
<div style='page-break-after: always;'></div>
<p> [PDF_B] 2nd Page</p>"""
# Initialize renderer
renderer = ChromePdfRenderer()
# Convert each HTML string to a PDF document
pdfdoc_a = renderer.RenderHtmlAsPdf(html_a)
pdfdoc_b = renderer.RenderHtmlAsPdf(html_b)
# Merge the two documents into one
merged = PdfDocument.Merge([pdfdoc_a, pdfdoc_b])
# Save the merged result to disk
merged.SaveAs("Merged.pdf")Dłączego warto używać RenderHtmlAsPdf do generowania plików PDF?
Przykład powyżej używa dwóch ciągów HTML, każdy reprezentujący dwustronicowy dokument. RenderHtmlAsPdf konwertuje każdy ciąg znaków na obiekt PdfDocument przy użyciu silnika renderującego IronPDF opartego na przeglądarce Chrome, który generuje dokładne wyniki na podstawie treści HTML, CSS i JavaScript. Podejście to jest dobrze dopasowane do generowania raportów lub dokumentów napędzanych danymi z szablonów webowych. Dla bardziej złożonych scenariuszy renderowania zobacz tutorial HTML na PDF.
PdfDocument.FromFile("path/to/file.pdf") i przekazać je bezpośrednio do metody Merge. Jest to przydatne podczas łączenia wcześniej istniejących raportów lub zewnętrznie generowanych dokumentów.Jak działa metoda Merge?
PdfDocument.Merge przyjmuje listę obiektów PdfDocument w języku Python jako swój jedyny argument. Łączy dokumenty w kolejności listy, umieszczając wszystkie strony z pierwszego dokumentu przed wszystkimi stronami z drugiego, i tak dalej. Wynikiem jest nowy PdfDocument, który można dalej modyfikować lub zapisać. Liczba stron, zakładki i osadzona zawartość z każdego dokumentu źródłowego są wszystkie zachowane w wyjściowym wyniku.
Metoda akceptuje dowolną kombinację dokumentów przedstawionych i załadowanych z pliku na tej samej liście. Oznacza to, że można połączyć świeżo wygenerowane wyjście HTML z istniejącymi plikami PDF z dysku w jednym wywołaniu, co jest przydatne, gdy jedna część raportu jest generowana dynamicznie, a inna część to statyczny szablon.
Jak zapisać scalony plik PDF?
Przekaż żądaną ścieżkę wyjściową do SaveAs, aby zapisać scalony dokument na dysku:
#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/save-merged.py
# Save the merged document
merged.SaveAs("Merged.pdf")
# Optionally compress images before saving to reduce file size
merged.CompressImages(90)
merged.SaveAs("Merged_Compressed.pdf")#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/save-merged.py
# Save the merged document
merged.SaveAs("Merged.pdf")
# Optionally compress images before saving to reduce file size
merged.CompressImages(90)
merged.SaveAs("Merged_Compressed.pdf")Po zapisaniu można zastosować dodatkowe przetwarzanie końcowe, takie jak kompresja PDF, aby zmniejszyć rozmiar pliku dużych scalonych dokumentów.
Jak połączyć więcej niż dwa pliki PDF w Pythonie?
Scalanie wsadowe w IronPDF odbywa się według tego samego wzorca co scalanie dwóch dokumentów. Jedyna różnica polega na tym, że przed wywołaniem PdfDocument.Merge do listy dodawanych jest więcej obiektów PdfDocument. Metoda skalująca umożliwia obsługę dziesiątek lub setek dokumentów w jednym działaniu.
To jest to samo API, niezależnie od tego, czy scala się 2 czy 200 dokumentów. Dla scenariuszy o dużej objętości, takich jak agregacja raportów nocnych czy potoki montażu dokumentów, IronPDF wspiera także równoległe generowanie PDF w celu przyspieszenia fazy renderowania przed scaleniem.
Proces obejmuje dwa kroki:
- Utwórz listę w języku Python zawierającą obiekty
PdfDocumentdo scalania - Przekaż listę jako argument do
PdfDocument.Merge
Jak połączyć wiele plików PDF za pomocą listy?
Kod poniżej łączy cztery dokumenty wyświetlane w HTML w jednym wywołaniu:
#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/merge-multiple-pdfs.py
from ironpdf import *
# HTML content for each document
html_a = """<p> [PDF_A] 1st Page </p>
<div style='page-break-after: always;'></div>
<p> [PDF_A] 2nd Page</p>"""
html_b = """<p> [PDF_B] 1st Page </p>
<div style='page-break-after: always;'></div>
<p> [PDF_B] 2nd Page</p>"""
html_c = """<p> [PDF_C] 1st Page </p>
<div style='page-break-after: always;'></div>
<p> [PDF_C] 2nd Page</p>"""
html_d = """<p> [PDF_D] Content Page </p>
<div style='page-break-after: always;'></div>
<p> [PDF_D] Summary Page</p>"""
renderer = ChromePdfRenderer()
# Render all four documents
pdfdoc_a = renderer.RenderHtmlAsPdf(html_a)
pdfdoc_b = renderer.RenderHtmlAsPdf(html_b)
pdfdoc_c = renderer.RenderHtmlAsPdf(html_c)
pdfdoc_d = renderer.RenderHtmlAsPdf(html_d)
# Collect into a list and merge
pdfs = [pdfdoc_a, pdfdoc_b, pdfdoc_c, pdfdoc_d]
pdf = PdfDocument.Merge(pdfs)
# Save the combined document
pdf.SaveAs("merged_multiple.pdf")#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/merge-multiple-pdfs.py
from ironpdf import *
# HTML content for each document
html_a = """<p> [PDF_A] 1st Page </p>
<div style='page-break-after: always;'></div>
<p> [PDF_A] 2nd Page</p>"""
html_b = """<p> [PDF_B] 1st Page </p>
<div style='page-break-after: always;'></div>
<p> [PDF_B] 2nd Page</p>"""
html_c = """<p> [PDF_C] 1st Page </p>
<div style='page-break-after: always;'></div>
<p> [PDF_C] 2nd Page</p>"""
html_d = """<p> [PDF_D] Content Page </p>
<div style='page-break-after: always;'></div>
<p> [PDF_D] Summary Page</p>"""
renderer = ChromePdfRenderer()
# Render all four documents
pdfdoc_a = renderer.RenderHtmlAsPdf(html_a)
pdfdoc_b = renderer.RenderHtmlAsPdf(html_b)
pdfdoc_c = renderer.RenderHtmlAsPdf(html_c)
pdfdoc_d = renderer.RenderHtmlAsPdf(html_d)
# Collect into a list and merge
pdfs = [pdfdoc_a, pdfdoc_b, pdfdoc_c, pdfdoc_d]
pdf = PdfDocument.Merge(pdfs)
# Save the combined document
pdf.SaveAs("merged_multiple.pdf")Lista przekazana do Merge określa kolejność stron w ostatecznym dokumencie. Przemieszczanie elementów na liście zmienia kolejność wyjściową bez dodatkowego kodu. Jeśli przed scaleniem konieczne jest posortowanie dokumentów — na przykład według daty lub numeru raportu — należy najpierw posortować listę w języku Python, a następnie przekazać ją do Merge.
Jak połączyć istniejące pliki PDF z dysku?
W przypadku łączenia istniejących plików PDF, a nie świeżo wygenerowanych, przed scaleniem należy załadować każdy plik za pomocą PdfDocument.FromFile. To typowy wzorzec przy pracy z plikami produkowanymi przez inne systemy - skanowane dokumenty, eksporty z raportów firm trzecich lub PDF generowane przez różne narzędzia. IronPDF wczytuje plik do pamięci jako obiekt PdfDocument, który następnie można scalić, zmodyfikować lub sprawdzić przed ostatecznym zapisaniem.
#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/merge-existing-pdfs.py
from ironpdf import *
# Load existing PDF files from disk
existing_pdf1 = PdfDocument.FromFile("report1.pdf")
existing_pdf2 = PdfDocument.FromFile("report2.pdf")
existing_pdf3 = PdfDocument.FromFile("report3.pdf")
# Merge all loaded documents
merged_existing = PdfDocument.Merge([existing_pdf1, existing_pdf2, existing_pdf3])
# Save the combined result
merged_existing.SaveAs("merged_reports.pdf")#:path=/static-assets/pdf/content-code-examples/how-to/python-merge-pdf/merge-existing-pdfs.py
from ironpdf import *
# Load existing PDF files from disk
existing_pdf1 = PdfDocument.FromFile("report1.pdf")
existing_pdf2 = PdfDocument.FromFile("report2.pdf")
existing_pdf3 = PdfDocument.FromFile("report3.pdf")
# Merge all loaded documents
merged_existing = PdfDocument.Merge([existing_pdf1, existing_pdf2, existing_pdf3])
# Save the combined result
merged_existing.SaveAs("merged_reports.pdf")Jakie są kolejne kroki przy łączeniu plików PDF w Pythonie?
W niniejszym przewodniku omówiono dwa główne wzorce łączenia plików PDF za pomocą IronPDF: renderowanie treści HTML do dokumentów PDF i łączenie ich za pomocą PdfDocument.Merge oraz ładowanie istniejących plików z dysku w celu połączenia partii. Oba podejścia korzystają z tego samego API i skaluje się od prostych scalania dwóch plików do dużych partii dokumentów.
IronPDF wspiera dodatkowe operacje po łączeniu, takie jak dodawanie nagłówków i stopek, stosowanie znaków wodnych dla marki, wydobywanie tekstu z połączonego dokumentu i wypełnianie formularzy PDF programowo.
Biblioteka obsługuje Python 3.x na Windows i Linux. Aby dowiedzieć się więcej o operacjach PDF w Pythonie, zapoznaj się z dzieleniem PDF, konwersją PDF na obrazy i drukowaniem PDF. Aby uzyskać pełną listę przykładów kodu Pythona, odwiedź stronę z przykładami IronPDF dla Pythona.
Rozpocznij bezpłatny okres próbny, aby przetestować łączenie PDF w swoim środowisku, lub zobacz opcje licencjonowania dla wdrożeń produkcyjnych.
Gotowy, aby sprawdzić, co jeszcze możesz zrobić? Sprawdź stronę tutoriali Python dla IronPDF tutaj: tutoriale IronPDF dla Pythona
Pobierz oprogramowanie.
Często Zadawane Pytania
Jak połączyć wiele plików PDF w jeden za pomocą języka Python?
Zainstaluj IronPDF za pomocą pip install ironpdf, następnie wywołaj PdfDocument.Merge() z listą Pythona obiektów PdfDocument. Metoda zwraca nowy scalony dokument, który zapisujesz za SaveAs.
Czy mogę scalać istniejące pliki PDF z dysku zamiast renderowanych?
Tak. Użyj PdfDocument.FromFile('ścieżka/do/pliku.pdf'), aby załadować każdy istniejący PDF, a następnie przekaż załadowane obiekty do PdfDocument.Merge(). Możesz mieszać dokumenty załadowane z plików i świeżo renderowane w tej samej liście.
Czy PdfDocument.Merge zachowuje formatowanie i czcionki dokumentu?
Tak. IronPDF zachowuje czcionki, obrazy, adnotacje i układy stron z wszystkich dokumentów źródłowych podczas scalania. Pierwotny wygląd każdego dokumentu źródłowego jest zachowany w końcowym scalonym PDF-ie.
Jak kontrolować kolejność stron w scalonym PDF-ie?
Kolejność stron w wyniku odpowiada kolejności obiektów PdfDocument na liście Pythona przekazanej do Merge. Zmieniając elementy listy przed wywołaniem Merge, kontrolujesz sekwencję.
Czy mogę skompresować scalony PDF, aby zmniejszyć rozmiar pliku?
Tak. Po scaleniu, wywołaj CompressImages(quality) na scalonym PdfDocument przed wywołaniem SaveAs. Wartość jakości 90 zapewnia dobrą równowagę między kompresją a wizualną wiernością.
Czy IronPDF dla Pythona działa na różnych platformach?
Tak. IronPDF dla Pythona obsługuje Python 3.x na Windows i Linux. To samo API PdfDocument.Merge() działa na obu platformach bez zmian konfiguracyjnych.
Czy mogę dodać metadane do scalonego dokumentu PDF?
Tak. Po scaleniu, ustaw właściwości metadanych jak pdf.MetaData.Author i pdf.MetaData.Title na scalonym PdfDocument przed zapisaniem.









