การส่งออก PDF — Aspose.Note FOSS สำหรับ Python
Aspose.Note FOSS for Python รองรับการส่งออกเอกสาร .one ที่โหลดแล้วเป็น PDF ผ่าน Document.Save(). PDF rendering ถูกจัดหาโดยไลบรารี 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 ให้การควบคุมแบบละเอียดเหนือการส่งออก ใช้มันแทน enum 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
| Property | Type | Default | Description |
|---|---|---|---|
PageIndex | int | 0 | ฟิลด์มีอยู่แต่ ไม่ได้ส่งต่อไปยังตัวส่งออก PDF ในเวอร์ชัน 26.3.1 (ไม่มีผล) |
PageCount | int | None | None | ฟิลด์มีอยู่แต่ ไม่ได้ส่งต่อไปยังตัวส่งออก PDF ในเวอร์ชัน 26.3.1 (ไม่มีผล) |
การส่งออกเป็นชุด
แปลงไฟล์ .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() |
| ข้อผิดพลาดสิทธิ์ที่เอาต์พุต | ไดเรกทอรีเอาต์พุตไม่สามารถเขียนได้ | ตรวจสอบสิทธิ์ของไดเรกทอรีเอาต์พุต |