Ekspor PDF — Aspose.Note FOSS untuk Python
Aspose.Note FOSS for Python supports exporting loaded .one dokumen ke PDF via Document.Save(). Rendering PDF disediakan oleh opsional ReportLab library. Ini satu-satunya format penyimpanan yang saat ini diimplementasikan; lainnya SaveFormat nilai menyebabkan UnsupportedSaveFormatException.
Prasyarat
Instal library dengan [pdf] ekstra untuk menambahkan ReportLab:
pip install "aspose-note[pdf]"Verifikasi:
python -c "from aspose.note import Document, SaveFormat; print('PDF export ready')"Ekspor Dasar
Ekspor semua halaman dokumen ke satu file PDF:
from aspose.note import Document, SaveFormat
doc = Document("MyNotes.one")
doc.Save("output.pdf", SaveFormat.Pdf)Halaman muncul di PDF dalam urutan yang sama seperti yang muncul di DOM.
Menggunakan PdfSaveOptions
PdfSaveOptions menyediakan kontrol detail atas ekspor. Gunakan itu alih-alih yang polos SaveFormat enum:
from aspose.note import Document
from aspose.note.saving import PdfSaveOptions
opts = PdfSaveOptions()
doc = Document("MyNotes.one")
doc.Save("output.pdf", opts)Catatan tentang PageIndex / PageCount: Bidang ini ada pada PdfSaveOptions tetapi tidak diteruskan ke pengekspor PDF pada v26.3.1 dan tidak berpengaruh. Seluruh dokumen selalu diekspor.
Referensi PdfSaveOptions
| Properti | Tipe | Default | Deskripsi |
|---|---|---|---|
PageIndex | int | 0 | Bidang ada tetapi tidak diteruskan ke pengekspor PDF di v26.3.1 (tidak berpengaruh) |
PageCount | `int | None` | None |
Ekspor Batch
Konversi setiap .one file dalam direktori menjadi 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}")Muat dari Stream, Simpan ke File
Gabungkan pemuatan berbasis stream dengan output PDF berbasis file:
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)Dapatkan Byte PDF dalam Memori
Document.Save() menerima aliran biner secara langsung: tidak memerlukan file sementara:
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")Nilai SaveFormat yang Didukung
| SaveFormat | Status |
|---|---|
SaveFormat.Pdf | Diimplementasikan |
Kesalahan Umum
| Kesalahan | Penyebab | Perbaikan |
|---|---|---|
ImportError: No module named 'reportlab' | [pdf] extra tidak terpasang | pip install "aspose-note[pdf]" |
UnsupportedSaveFormatException | SaveFormat Non-PDF digunakan | Gunakan SaveFormat.Pdf hanya |
IncorrectPasswordException | File .one terenkripsi | Gunakan file yang tidak terenkripsi |
FileNotFoundError | Jalur .one input salah | Verifikasi jalur dengan Path.exists() |
| Kesalahan izin pada output | Direktori output tidak dapat ditulis | Periksa izin direktori output |