การส่งออก 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

PropertyTypeDefaultDescription
PageIndexint0ฟิลด์มีอยู่แต่ ไม่ได้ส่งต่อไปยังตัวส่งออก PDF ในเวอร์ชัน 26.3.1 (ไม่มีผล)
PageCountint | NoneNoneฟิลด์มีอยู่แต่ ไม่ได้ส่งต่อไปยังตัวส่งออก 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()
ข้อผิดพลาดสิทธิ์ที่เอาต์พุตไดเรกทอรีเอาต์พุตไม่สามารถเขียนได้ตรวจสอบสิทธิ์ของไดเรกทอรีเอาต์พุต
 ภาษาไทย