PDF Dışa Aktarım — Aspose.Note Python için FOSS
Aspose.Note FOSS for Python supports exporting loaded .one belgeleri PDF’ye aracılığıyla Document.Save(). PDF renderleme, isteğe bağlı olarak sağlanır ReportLab kütüphane. Bu, şu anda uygulanan tek kaydetme formatıdır; diğer SaveFormat değerler hata oluşturur UnsupportedSaveFormatException.
Ön Koşullar
Kütüphaneyi şununla kurun [pdf] extra’ı ekleyerek ReportLab’ı çekin:
pip install "aspose-note[pdf]"Doğrulayın:
python -c "from aspose.note import Document, SaveFormat; print('PDF export ready')"Temel Dışa Aktarma
Bir belgenin tüm sayfalarını tek bir PDF dosyasına dışa aktar:
from aspose.note import Document, SaveFormat
doc = Document("MyNotes.one")
doc.Save("output.pdf", SaveFormat.Pdf)Sayfalar, PDF’de DOM’da göründükleri aynı sırayla yer alır.
PdfSaveOptions Kullanarak
PdfSaveOptions dışa aktarma üzerinde ayrıntılı kontrol sağlar. Çıplak yerine bunu geçirin SaveFormat enum:
from aspose.note import Document
from aspose.note.saving import PdfSaveOptions
opts = PdfSaveOptions()
doc = Document("MyNotes.one")
doc.Save("output.pdf", opts)Not: PageIndex / PageCount: Bu alanlar şunlarda bulunur PdfSaveOptions ancak v26.3.1’de PDF dışa aktarıcısına iletilmez ve hiçbir etkisi yoktur. Tüm belge her zaman dışa aktarılır.
PdfSaveOptions Referansı
| Özellik | Tip | Varsayılan | Açıklama |
|---|---|---|---|
PageIndex | int | 0 | Alan mevcut ancak v26.3.1’de PDF dışa aktarıcısına yönlendirilmedi (hiçbir etkisi yok) |
PageCount | `int | None` | None |
Toplu Dışa Aktarma
Her birini dönüştür .one bir dizindeki her dosyayı PDF’ye:
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}")Akıştan Yükle, Dosyaya Kaydet
Akış tabanlı yüklemeyi dosya tabanlı PDF çıktısıyla birleştir:
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 Baytlarını Bellekte Al
Document.Save() ikili akışı doğrudan kabul eder: geçici dosya gerekmez:
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")Desteklenen SaveFormat Değerleri
| SaveFormat | Durum |
|---|---|
SaveFormat.Pdf | Uygulandı |
Yaygın Hatalar
| Hata | Neden | Düzeltme |
|---|---|---|
ImportError: No module named 'reportlab' | [pdf] ekstra yüklü değil | pip install "aspose-note[pdf]" |
UnsupportedSaveFormatException | PDF olmayan SaveFormat kullanıldı | Kullan SaveFormat.Pdf yalnızca |
IncorrectPasswordException | Şifreli .one dosyası | Şifrelenmemiş bir dosya kullanın |
FileNotFoundError | Girdi .one yolu yanlış | Yolu şununla doğrulayın Path.exists() |
| Çıktıda izin hatası | Çıktı dizini yazılabilir değil | Çıktı dizini izinlerini kontrol edin |