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:
| Renderer | Handles |
|---|---|
ParagraphRenderer | Renderuje akapity LDM do PDF — obsługuje wyrównanie, odstępy i wcięcia |
RunRenderer | Renderuje sformatowane fragmenty tekstu — segmenty tekstowe z czcionkami, kolorami i linkami |
ShapeRenderer | Renderuje kształty, obrazy i elementy pozycjonowane |
TableRenderer | Renderuje 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
| Problem | Przyczyna | Naprawa |
|---|---|---|
| Czcionki różnią się w PDF | Czcionka nie jest dostępna w systemie | Zainstaluj wymagane czcionki lub użyj podstawiania czcionek |
| Tabele są niewyrównane | Złożone zagnieżdżone struktury tabel | Uprość zagnieżdżanie tabel w dokumencie źródłowym |
| Brak obrazów | Dane obrazu nie są osadzone w źródle | Upewnij 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 / Metoda | Opis |
|---|---|
PdfSaveOptions | Opcje zapisywania dokumentów jako PDF |
ParagraphRenderer | Renderuje akapity LDM do PDF |
RunRenderer | Renderuje sformatowane fragmenty (tekst z czcionkami, kolorami, linkami) |
ShapeRenderer | Renderuje kształty, obrazy i elementy pozycjonowane |
TableRenderer | Renderuje tabele LDM do PDF |
SaveFormat.PDF | Stała dla formatu zapisu PDF |
LdmPdfWriter().write(doc, path) | Zapisz dokument jako PDF |