PDF Export — Aspose.Note FOSS за Python

Aspose.Note FOSS for Python supports exporting loaded .one документи към PDF чрез Document.Save(). Рендирането в PDF се предоставя от опционалния ReportLab библиотека. Това е единственият формат за запазване, който в момента е реализиран; други SaveFormat стойности предизвикват UnsupportedSaveFormatException.


Предпоставки

Инсталирайте библиотеката с [pdf] допълнителен extra, за да изтеглите ReportLab:

pip install "aspose-note[pdf]"

Проверка:

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

Основен експорт

Експортирайте всички страници на документ в един PDF файл:

from aspose.note import Document, SaveFormat

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

Страниците се появяват в PDF в същия ред, в който са в DOM.


Използване на PdfSaveOptions

PdfSaveOptions предоставя фино контролирано управление върху експорта. Предайте го вместо голото SaveFormat изброяване:

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

opts = PdfSaveOptions()

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

Забележка за PageIndex / PageCount: Тези полета съществуват в PdfSaveOptions но са не се предават към PDF експортер в v26.3.1 и нямат ефект. Целият документ винаги се експортира.


Справка за PdfSaveOptions

СвойствоТипПо подразбиранеОписание
PageIndexint0Полето съществува, но не се предава към PDF експортер в v26.3.1 (няма ефект)
PageCount`intNone`None

Пакетен експорт

Конвертирайте всяко .one файл в директория към 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}")

Зареждане от поток, запазване във файл

Комбинирайте зареждането от поток с файловия PDF изход:

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)

Получете PDF байтове в паметта

Document.Save() приема двоичен поток директно: не е необходим временен файл:

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")

Поддържани стойности за SaveFormat

SaveFormatСъстояние
SaveFormat.PdfРеализирано

Чести грешки

ГрешкаПричинаПоправка
ImportError: No module named 'reportlab'[pdf] допълнителният не е инсталиранpip install "aspose-note[pdf]"
UnsupportedSaveFormatExceptionИзползван е SaveFormat, различен от PDFИзползвай SaveFormat.Pdf само
IncorrectPasswordExceptionКриптиран .one файлИзползвайте некриптиран файл
FileNotFoundErrorВходният път към .one е грешенПровери пътя с Path.exists()
Грешка с правата за изходИзходната директория не е записваемаПроверете правата за достъп до изходната директория
 Български