Tworzenie kompaktowych, drukowalnych plików PDF z wielu stron jest częstą potrzebą w raportach, katalogach i podręcznikach. Aspose.PDF for Python via .NET zapewnia solidny zestaw SDK, który umożliwia programistyczne tworzenie PDF Booklet w Pythonie z precyzyjną kontrolą. W tym przewodniku zobaczysz, jak skonfigurować środowisko, zbudować książeczkę, opcjonalnie dodać zakładki i wyeksportować końcowy dokument.

Czym jest PDF Booklet?

Broszura PDF to dokument ułożony tak, aby wiele stron można było wydrukować, złożyć i czytać jak małą książkę, podręcznik, ulotkę lub katalog. Zamiast zachowywać strony w normalnej kolejności sekwencyjnej, generowanie broszury przestawia strony tak, aby właściwe strony pojawiały się obok siebie po wydrukowaniu i złożeniu.

Na przykład układ broszury może umieścić jedną stronę po lewej stronie arkusza, a drugą po prawej stronie. Po wydrukowaniu dwustronnym i złożeniu strony pojawiają się w prawidłowej kolejności czytania.

Broszury są powszechnie używane do:

  • Katalogi produktów
  • Programy wydarzeń
  • Podręczniki szkoleniowe
  • Raporty
  • Przewodniki instruktażowe
  • Profile firm
  • Broszury
  • Małe drukowane książki

W języku Python możesz zautomatyzować ten proces zamiast ręcznego przestawiania stron w edytorze PDF.

API generatora broszury PDF w Pythonie

Aby utworzyć książeczkę PDF w Pythonie, użyjemy Aspose.PDF for Python via .NET. Jest to API do przetwarzania PDF, które umożliwia programistom Pythona tworzenie, edytowanie, konwertowanie, dzielenie, scalanie, zabezpieczanie, anotowanie i manipulowanie plikami PDF programowo.

Do tworzenia broszury kluczową klasą jest:

pdf.facades.PdfFileEditor()

Klasa PdfFileEditor zapewnia zaawansowane funkcje manipulacji plikami PDF. W tym samouczku użyjemy jej metody make_booklet(), aby przekształcić istniejący plik PDF w układ broszury.

Krok 1: Zainstaluj Aspose.PDF SDK

Najpierw zainstaluj Aspose.PDF for Python via .NET przy użyciu pip:

pip install aspose-pdf

Krok 2: Przygotuj plik PDF wejściowy

Przed utworzeniem broszury upewnij się, że masz już plik PDF źródłowy. W tym samouczku użyjemy następującej nazwy pliku:

input.pdf

Książeczka wyjściowa zostanie zapisana jako:

booklet.pdf

Umieść plik PDF wejściowy w tym samym katalogu co skrypt Pythona lub podaj pełną ścieżkę do pliku.

Przykład:

project-folder/
├── input.pdf
└── create_booklet.py

Krok 3: Utwórz prosty PDF Booklet w Pythonie

Najprostszym sposobem na stworzenie broszury jest wywołanie make_booklet() z plikiem wejściowym, plikiem wyjściowym i docelowym rozmiarem strony.

Poniższy kod w Pythonie tworzy książeczkę przy użyciu rozmiaru strony A5:

import aspose.pdf as pdf

# Create PdfFileEditor object
pdf_editor = pdf.facades.PdfFileEditor()

# Create booklet from input PDF
pdf_editor.make_booklet(
    "input.pdf",
    "booklet.pdf",
    pdf.PageSize.a5
)

print("PDF booklet created successfully.")

Ten kod ładuje input.pdf, układa jego strony w układ broszury i zapisuje wynik jako booklet.pdf.

Krok 4: Utwórz niestandardową broszurę PDF z lewą i prawą stroną

W wielu przypadkach możesz chcieć kontrolować, które strony pojawiają się po lewej stronie, a które po prawej stronie układu broszury.

Poniższy przykład oparty jest na oryginalnym kodzie C# i konwertuje go na Pythona:

import aspose.pdf as pdf

# Create PdfFileEditor object
pdf_editor = pdf.facades.PdfFileEditor()

# Set left and right pages
left_pages = [1, 5]
right_pages = [2, 3]

# Make booklet
pdf_editor.make_booklet(
    "input.pdf",
    "booklet.pdf",
    pdf.PageSize.a5,
    left_pages,
    right_pages
)

print("PDF booklet created successfully.")

Wyjaśnienie kodu

Rozbijmy kod.

Najpierw zaimportuj pakiet Aspose.PDF:

import aspose.pdf as pdf

Następnie utwórz instancję PdfFileEditor:

pdf_editor = pdf.facades.PdfFileEditor()

Ten obiekt zapewnia dostęp do zaawansowanych funkcji edycji PDF, w tym tworzenia broszury.

Następnie określ układ strony:

left_pages = [1, 5]
right_pages = [2, 3]

Lista left_pages definiuje strony, które będą wyświetlane po lewej stronie rozkładu broszury. Lista right_pages definiuje strony, które będą wyświetlane po prawej stronie.

Na koniec wywołaj metodę make_booklet():

pdf_editor.make_booklet(
    "input.pdf",
    "booklet.pdf",
    pdf.PageSize.a5,
    left_pages,
    right_pages
)

To tworzy broszurę i zapisuje ją jako booklet.pdf.

Kompletny kod Python

Oto kompletny przykład kodu tworzącego książeczkę PDF w języku Python:

import aspose.pdf as pdf

def create_pdf_booklet(input_pdf: str, output_pdf: str) -> None:
    """
    Create a PDF booklet from an existing PDF file using Aspose.PDF for Python via .NET.

Args:
        input_pdf: Path to the source PDF file.
        output_pdf: Path where the generated booklet PDF will be saved.
    """

# Create PdfFileEditor object
    pdf_editor = pdf.facades.PdfFileEditor()

# Set left and right pages
    left_pages = [1, 5]
    right_pages = [2, 3]

# Make booklet
    pdf_editor.make_booklet(
        input_pdf,
        output_pdf,
        pdf.PageSize.a5,
        left_pages,
        right_pages
    )

if __name__ == "__main__":
    create_pdf_booklet(
        input_pdf="input.pdf",
        output_pdf="booklet.pdf"
    )

print("PDF booklet created successfully.")

Krok 5: Dodaj opcjonalne zakładki do broszury

Po utworzeniu broszury możesz chcieć dodać zakładki, aby ułatwić nawigację. Zakładki są przydatne w raportach, podręcznikach, katalogach, przewodnikach szkoleniowych i innych długich dokumentach.

Poniższy przykład najpierw tworzy książeczkę, a następnie dodaje zakładki do wygenerowanego pliku PDF:

import aspose.pdf as pdf

def create_pdf_booklet(input_pdf: str, output_pdf: str) -> None:
    """
    Create a PDF booklet from an existing PDF file.
    """

pdf_editor = pdf.facades.PdfFileEditor()

left_pages = [1, 5]
    right_pages = [2, 3]

pdf_editor.make_booklet(
        input_pdf,
        output_pdf,
        pdf.PageSize.a5,
        left_pages,
        right_pages
    )

def add_bookmarks(input_pdf: str, output_pdf: str) -> None:
    """
    Add bookmarks to an existing PDF document.
    """

# Open generated booklet PDF
    document = pdf.Document(input_pdf)

# Add bookmark for first page
    first_bookmark = pdf.OutlineItemCollection(document.outlines)
    first_bookmark.title = "Booklet Start"
    first_bookmark.bold = True
    first_bookmark.action = pdf.annotations.GoToAction(document.pages[1])
    document.outlines.append(first_bookmark)

# Add bookmark for second page, if available
    if len(document.pages) >= 2:
        second_bookmark = pdf.OutlineItemCollection(document.outlines)
        second_bookmark.title = "Second Spread"
        second_bookmark.action = pdf.annotations.GoToAction(document.pages[2])
        document.outlines.append(second_bookmark)

# Save PDF with bookmarks
    document.save(output_pdf)

if __name__ == "__main__":
    create_pdf_booklet(
        input_pdf="input.pdf",
        output_pdf="booklet.pdf"
    )

add_bookmarks(
        input_pdf="booklet.pdf",
        output_pdf="booklet-with-bookmarks.pdf"
    )

print("PDF booklet with bookmarks created successfully.")

Ten kod tworzy dwa pliki wyjściowe:

booklet.pdf
booklet-with-bookmarks.pdf

Pierwszy plik zawiera układ broszury. Drugi plik zawiera broszurę z dodanymi zakładkami.

Wybór odpowiedniego rozmiaru strony

W powyższych przykładach użyliśmy rozmiaru strony A5:

pdf.PageSize.a5

A5 jest powszechnie używany w broszurach, ponieważ jest kompaktowy i nadaje się do drukowanych podręczników, ulotek oraz małych katalogów.

Możesz używać innych rozmiarów stron w zależności od wymagań wyjściowych. Na przykład, jeśli tworzysz większą broszurę, możesz użyć formatu A4. Jeśli przygotowujesz kompaktowy podręcznik, bardziej odpowiedni może być format A5.

Typowe zastosowania broszury obejmują:

Przypadek użyciaSugerowany rozmiar strony
Mały podręcznikA5
Katalog produktówA5 lub A4
Program wydarzeniaA5
Materiał szkoleniowyA4 lub A5
Ulotka firmowaA5

Najlepsze praktyki tworzenia broszur PDF

Podczas generowania broszur programowo, pamiętaj o następujących punktach.

1. Użyj czystego pliku PDF źródłowego

Twój plik PDF wejściowy powinien być już odpowiednio sformatowany. Generowanie broszury przestawia strony, ale nie przepisuje wewnętrznej zawartości każdej strony.

Przed utworzeniem broszury, sprawdź:

  • Marginesy strony
  • Umiejscowienie nagłówka i stopki
  • Osadzanie czcionek
  • Jakość obrazu
  • Orientacja strony
  • Obszary spadu lub bezpieczne dla druku

2. Sprawdź liczbę stron

Broszury działają najlepiej, gdy liczba stron jest odpowiednia do składania i drukowania. Jeśli liczba stron nie jest idealnie dopasowana, może być konieczne dodanie pustych stron.

Na przykład, broszura może wymagać stron w wielokrotnościach czterech, ponieważ każdy złożony arkusz tworzy cztery strony.

3. Testowe drukowanie przed drukowaniem zbiorczym

Zawsze wydrukuj próbny egzemplarz przed wysłaniem broszury do masowego drukowania. Przeglądarki PDF i ustawienia drukarki mogą wpływać na skalowanie, marginesy, tryb dwustronny i orientację strony.

Zalecane ustawienia drukarki mogą obejmować:

  • Drukuj dwustronnie
  • Obróć przy krótkim lub długim brzegu, w zależności od drukarki
  • Rzeczywisty rozmiar
  • Brak automatycznego skalowania
  • Poprawny rozmiar papieru

4. Dodaj zakładki do kopii cyfrowych

Jeśli broszura będzie również udostępniana w formie cyfrowej, zakładki ułatwiają nawigację. Pomagają czytelnikom szybko przejść do ważnych sekcji.

Zakładki są szczególnie przydatne do:

  • Długie raporty
  • Podręczniki techniczne
  • Dokumenty polityki
  • Katalogi produktów
  • Materiały szkoleniowe

5. Używaj Czytelnych Nazw Plików

Używaj opisowych nazw plików wyjściowych, szczególnie przy generowaniu dokumentów w trybie wsadowym.

Na przykład:

employee-handbook-booklet.pdf
product-catalog-booklet.pdf
training-manual-booklet.pdf

Typowe błędy i rozwiązania

Błąd: ModuleNotFoundError: Brak modułu o nazwie ‘aspose’

Oznacza to, że pakiet Aspose.PDF nie jest zainstalowany w bieżącym środowisku Pythona.

Napraw to przy użyciu:

pip install aspose-pdf

Jeśli używasz wirtualnego środowiska, upewnij się, że jest aktywowane przed instalacją pakietu.

Błąd: Nie znaleziono pliku PDF wejściowego

Jeśli Twój skrypt nie może znaleźć pliku wejściowego, sprawdź ścieżkę do pliku.

Zamiast:

"input.pdf"

Użyj ścieżki bezwzględnej:

"C:/Users/YourName/Documents/input.pdf"

Lub na Linux/macOS:

"/home/user/documents/input.pdf"

Błąd: Wyjście książeczki nie jest w oczekiwanej kolejności

Jeśli używasz niestandardowych tablic stron lewych i prawych, sprawdź, czy numery stron odpowiadają stronom w źródłowym pliku PDF.

Przykład:

left_pages = [1, 5]
right_pages = [2, 3]

Te wartości powinny być wybrane w zależności od pożądanego układu rozkładów broszury.

Błąd: Zakładki nie pojawiają się

Jeśli zakładki nie pojawiają się w przeglądarce PDF, sprawdź, czy w przeglądarce włączony jest panel zakładek. Niektóre przeglądarki PDF domyślnie ukrywają zakładki.

Możesz również ustawić tryb strony dokumentu, aby wyświetlał konspekt:

document.page_mode = pdf.PageMode.USE_OUTLINES

Dodaj to przed zapisaniem pliku PDF:

document.save(output_pdf)

Utwórz broszurę PDF w Pythonie: kod końcowy

Poniższy końcowy kod tworzy broszurę PDF, dodaje zakładki i zapisuje wynik:

import aspose.pdf as pdf

def create_pdf_booklet(input_pdf: str, booklet_pdf: str) -> None:
    """
    Create a custom PDF booklet using Aspose.PDF for Python via .NET.
    """

pdf_editor = pdf.facades.PdfFileEditor()

left_pages = [1, 5]
    right_pages = [2, 3]

pdf_editor.make_booklet(
        input_pdf,
        booklet_pdf,
        pdf.PageSize.a5,
        left_pages,
        right_pages
    )

def add_bookmarks_to_booklet(booklet_pdf: str, output_pdf: str) -> None:
    """
    Add bookmarks to the generated booklet PDF.
    """

document = pdf.Document(booklet_pdf)

start_bookmark = pdf.OutlineItemCollection(document.outlines)
    start_bookmark.title = "Booklet Start"
    start_bookmark.bold = True
    start_bookmark.action = pdf.annotations.GoToAction(document.pages[1])
    document.outlines.append(start_bookmark)

if len(document.pages) >= 2:
        second_bookmark = pdf.OutlineItemCollection(document.outlines)
        second_bookmark.title = "Second Spread"
        second_bookmark.action = pdf.annotations.GoToAction(document.pages[2])
        document.outlines.append(second_bookmark)

document.page_mode = pdf.PageMode.USE_OUTLINES
    document.save(output_pdf)

if __name__ == "__main__":
    input_pdf = "input.pdf"
    booklet_pdf = "booklet.pdf"
    final_pdf = "booklet-with-bookmarks.pdf"

create_pdf_booklet(input_pdf, booklet_pdf)
    add_bookmarks_to_booklet(booklet_pdf, final_pdf)

print("PDF booklet created successfully:", final_pdf)

Wnioski

W tym samouczku nauczyłeś się, jak utworzyć broszurę PDF w Pythonie przy użyciu Aspose.PDF for Python via .NET. Zainstalowałeś SDK, utworzyłeś broszurę z istniejącego pliku PDF, skonfigurowałeś rozmieszczenie stron po lewej i prawej stronie, dodałeś opcjonalne zakładki i zapisałeś gotową broszurę jako plik PDF.

Metoda PdfFileEditor.make_booklet() jest przydatna, gdy potrzebujesz zautomatyzować generowanie książeczek dla raportów, katalogów, podręczników, ulotek i dokumentacji do druku. Łącząc tworzenie książeczki z zakładkami, możesz generować pliki PDF, które są odpowiednie zarówno do druku, jak i dystrybucji cyfrowej.

Read More