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
| Свойство | Тип | По подразбиране | Описание |
|---|---|---|---|
PageIndex | int | 0 | Полето съществува, но не се предава към PDF експортер в v26.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 | Използван е SaveFormat, различен от PDF | Използвай SaveFormat.Pdf само |
IncorrectPasswordException | Криптиран .one файл | Използвайте некриптиран файл |
FileNotFoundError | Входният път към .one е грешен | Провери пътя с Path.exists() |
| Грешка с правата за изход | Изходната директория не е записваема | Проверете правата за достъп до изходната директория |