PDF Export — Aspose.Note FOSS для Python
Aspose.Note FOSS for Python supports exporting loaded .one документи у PDF за допомогою Document.Save(). Відображення PDF забезпечується опціональним ReportLab бібліотека. Це єдиний формат збереження, наразі реалізований; інші SaveFormat значення викликають UnsupportedSaveFormatException.
Вимоги
Встановіть бібліотеку за допомогою [pdf] додаткового пакету, щоб підключити 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 enum:
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] додатковий не встановлено | pip install "aspose-note[pdf]" |
UnsupportedSaveFormatException | Використано не-PDF формат збереження | Використати SaveFormat.Pdf лише |
IncorrectPasswordException | Зашифрований файл .one | Використайте нешифрований файл |
FileNotFoundError | Шлях до вхідного .one неправильний | Перевірте шлях за допомогою Path.exists() |
| Помилка прав доступу при виведенні | Каталог виводу недоступний для запису | Перевірте права доступу до каталогу виводу |