Экспорт 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
| Свойство | Тип | По умолчанию | Описание |
|---|---|---|---|
PageIndex | int | 0 | Поле существует, но не передаётся в PDF‑экспортер в версии 26.3.1 (не имеет эффекта) |
PageCount | `int | None` | 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() |
| Ошибка доступа при выводе | Каталог вывода недоступен для записи | Проверьте права доступа к каталогу вывода |