Eksport PDF — Aspose.Note FOSS dla Python

Aspose.Note FOSS for Python supports exporting loaded .one dokumenty do PDF za pomocą Document.Save(). Renderowanie PDF jest zapewniane przez opcjonalny ReportLab biblioteka. To jedyny format zapisu obecnie zaimplementowany; inne SaveFormat wartości wywołują UnsupportedSaveFormatException.


Wymagania wstępne

Zainstaluj bibliotekę z [pdf] dodatkowym pakietem, aby pobrać ReportLab:

pip install "aspose-note[pdf]"

Zweryfikuj:

python -c "from aspose.note import Document, SaveFormat; print('PDF export ready')"

Podstawowy eksport

Wyeksportuj wszystkie strony dokumentu do jednego pliku PDF:

from aspose.note import Document, SaveFormat

doc = Document("MyNotes.one")
doc.Save("output.pdf", SaveFormat.Pdf)

Strony pojawiają się w PDF w takiej samej kolejności, w jakiej występują w DOM.


Używanie PdfSaveOptions

PdfSaveOptions zapewnia precyzyjną kontrolę nad eksportem. Przekaż go zamiast samego SaveFormat wyliczenia:

from aspose.note import Document
from aspose.note.saving import PdfSaveOptions

opts = PdfSaveOptions()

doc = Document("MyNotes.one")
doc.Save("output.pdf", opts)

Uwaga dotycząca PageIndex / PageCount: Te pola istnieją w PdfSaveOptions ale są nie jest przekazywany do eksportera PDF w wersji v26.3.1 i nie mają wpływu. Cały dokument jest zawsze eksportowany.


Referencja PdfSaveOptions

WłaściwośćTypDomyślneOpis
PageIndexint0Pole istnieje, ale nie jest przekazywane do eksportera PDF w wersji v26.3.1 (nie ma wpływu)
PageCount`intNone`None

Eksport wsadowy

Konwertuj każdy .one plik w katalogu do PDF:

from pathlib import Path
from aspose.note import Document, SaveFormat

input_dir = Path("./notes")
output_dir = Path("./pdfs")
output_dir.mkdir(parents=True, exist_ok=True)

for one_file in sorted(input_dir.glob("*.one")):
    try:
        doc = Document(str(one_file))
        out = output_dir / one_file.with_suffix(".pdf").name
        doc.Save(str(out), SaveFormat.Pdf)
        print(f"OK  {one_file.name} -> {out.name}")
    except Exception as exc:
        print(f"ERR {one_file.name}: {exc}")

Wczytaj ze strumienia, zapisz do pliku

Połącz wczytywanie oparte na strumieniu z wyjściem PDF opartym na pliku:

from pathlib import Path
from aspose.note import Document, SaveFormat

one_bytes = Path("MyNotes.one").read_bytes()

import io
doc = Document(io.BytesIO(one_bytes))
doc.Save("output.pdf", SaveFormat.Pdf)

Uzyskaj bajty PDF w pamięci

Document.Save() akceptuje strumień binarny bezpośrednio: nie jest potrzebny plik tymczasowy:

import io
from aspose.note import Document, SaveFormat
from aspose.note.saving import PdfSaveOptions

doc = Document("MyNotes.one")

buf = io.BytesIO()
doc.Save(buf, PdfSaveOptions())
pdf_bytes = buf.getvalue()
print(f"PDF size: {len(pdf_bytes)} bytes")

Obsługiwane wartości SaveFormat

SaveFormatStatus
SaveFormat.PdfZaimplementowano

Typowe błędy

BłądPrzyczynaNaprawa
ImportError: No module named 'reportlab'[pdf] extra nie zainstalowanopip install "aspose-note[pdf]"
UnsupportedSaveFormatExceptionUżyto formatu zapisu nie‑PDFUżyj SaveFormat.Pdf tylko
IncorrectPasswordExceptionZaszyfrowany plik .oneUżyj niezaszyfrowanego pliku
FileNotFoundErrorŚcieżka wejściowa .one jest nieprawidłowaZweryfikuj ścieżkę za pomocą Path.exists()
Błąd uprawnień przy wyjściuKatalog wyjściowy nie jest zapisywalnySprawdź uprawnienia katalogu wyjściowego
 Polski