Экспорт PDF — Aspose.Note FOSS for 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‑экспортер в версии 26.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] extra не установленpip install "aspose-note[pdf]"
UnsupportedSaveFormatExceptionИспользован формат сохранения, не PDFИспользовать SaveFormat.Pdf только
IncorrectPasswordExceptionЗашифрованный файл .oneИспользуйте незашифрованный файл
FileNotFoundErrorНеправильный путь к входному файлу .oneПроверьте путь с помощью Path.exists()
Ошибка доступа при выводеКаталог вывода недоступен для записиПроверьте права доступа к каталогу вывода
 Русский