Praca z PDF Writer

Praca z PDF Writer

Aspose.Words FOSS for Python eksportuje dokumenty do PDF poprzez dedykowany pipeline renderujący. Pipeline konwertuje każdy element LDM — akapity, fragmenty, kształty i tabele — na wyjście PDF przy użyciu wyspecjalizowanych rendererów.


Podstawowy eksport PDF

Zapisz dowolny załadowany dokument jako PDF przy użyciu LdmPdfWriter:

import aspose.words_foss as aw
from aspose.words_foss.pdf_writer import LdmPdfWriter

doc = aw.Document("input.docx")
LdmPdfWriter().write(doc, "output.pdf")

Format wejściowy jest wykrywany automatycznie podczas ładowania — Document akceptuje pliki DOCX, DOC, RTF, TXT oraz Markdown, a LdmPdfWriter zawsze generuje wyjście PDF niezależnie od formatu wejściowego:

import aspose.words_foss as aw
from aspose.words_foss.pdf_writer import LdmPdfWriter

doc = aw.Document("input.doc")
LdmPdfWriter().write(doc, "output.pdf")

Korzystanie z PdfSaveOptions

Skonfiguruj wyjście PDF, przekazując PdfSaveOptions do konstruktora writer’a:

import aspose.words_foss as aw
from aspose.words_foss.pdf_writer import LdmPdfWriter
from aspose.words_foss.saving import PdfSaveOptions

doc = aw.Document("input.docx")
opts = PdfSaveOptions()
LdmPdfWriter(opts).write(doc, "output.pdf")

Potok renderowania PDF

PDF writer używa wewnętrznie czterech wyspecjalizowanych rendererów:

RendererHandles
ParagraphRendererRenderuje akapity LDM do PDF — obsługuje wyrównanie, odstępy i wcięcia
RunRendererRenderuje sformatowane fragmenty tekstu — segmenty tekstowe z czcionkami, kolorami i linkami
ShapeRendererRenderuje kształty, obrazy i elementy pozycjonowane
TableRendererRenderuje tabele LDM — obramowania komórek, łączenia i wypełnienia

Te renderery współpracują, aby stworzyć ostateczny PDF. Interagujesz z nimi pośrednio poprzez LdmPdfWriter.


Konwertowanie wielu formatów do PDF

PDF writer akceptuje dane wejściowe z dowolnego obsługiwanego czytnika (DOCX, DOC, RTF, TXT, Markdown):

import aspose.words_foss as aw
from aspose.words_foss.pdf_writer import LdmPdfWriter

writer = LdmPdfWriter()
for input_file in ["report.docx", "legacy.doc", "notes.rtf", "readme.txt"]:
    doc = aw.Document(input_file)
    pdf_name = input_file.rsplit(".", 1)[0] + ".pdf"
    writer.write(doc, pdf_name)
    print(f"Saved {pdf_name}")

Wskazówki i najlepsze praktyki

  • Użyj PdfSaveOptions, gdy potrzebujesz dostosować wyjście PDF poza domyślne ustawienia.
  • Do konwersji wsadowej wczytuj i zapisuj w pętli — renderery są bezstanowe i mogą być ponownie użyte w różnych dokumentach.
  • PDF writer zachowuje pogrubienie, kursywę, podkreślenie, rozmiary czcionek i kolory z dokumentu źródłowego.
  • Scalenia komórek tabeli (CellMerge) są renderowane poprawnie w wyjściu PDF.
  • Przetestuj na reprezentatywnych dokumentach przed wdrożeniem do produkcji — skomplikowane układy mogą wymagać dostosowania.

Typowe problemy

ProblemPrzyczynaNaprawa
Czcionki różnią się w PDFCzcionka nie jest dostępna w systemieZainstaluj wymagane czcionki lub użyj podstawiania czcionek
Tabele są niewyrównaneZłożone zagnieżdżone struktury tabelUprość zagnieżdżanie tabel w dokumencie źródłowym
Brak obrazówDane obrazu nie są osadzone w źródleUpewnij się, że obrazy są osadzone, a nie linkowane zewnętrznie

FAQ

Jakie formaty wejściowe mogą być eksportowane do PDF?

Pliki DOCX, DOC, RTF, TXT i Markdown można wszystkie wczytać i zapisać jako PDF.

Czy PDF writer obsługuje nagłówki i stopki stron?

Nagłówki i stopki z dokumentu źródłowego są włączane do wyjścia PDF, gdy występują w LDM.

Czy mogę kontrolować rozmiar i orientację stron PDF?

Właściwości układu strony (rozmiar, orientacja, marginesy) z dokumentu źródłowego są zachowywane w pliku PDF. Zmodyfikuj PageSetup w sekcjach Document przed zapisaniem, aby zmienić te wartości.


API Reference Podsumowanie

Klasa / MetodaOpis
PdfSaveOptionsOpcje zapisywania dokumentów jako PDF
ParagraphRendererRenderuje akapity LDM do PDF
RunRendererRenderuje sformatowane fragmenty (tekst z czcionkami, kolorami, linkami)
ShapeRendererRenderuje kształty, obrazy i elementy pozycjonowane
TableRendererRenderuje tabele LDM do PDF
SaveFormat.PDFStała dla formatu zapisu PDF
LdmPdfWriter().write(doc, path)Zapisz dokument jako PDF

Zobacz także

 Polski