Esportazione PDF — Aspose.Note FOSS per Python
Aspose.Note FOSS for Python supports exporting loaded .one documenti in PDF tramite Document.Save(). Il rendering PDF è fornito dall’opzionale ReportLab libreria. Questo è l’unico formato di salvataggio attualmente implementato; altri SaveFormat valori generano UnsupportedSaveFormatException.
Prerequisiti
Installa la libreria con il [pdf] extra per includere ReportLab:
pip install "aspose-note[pdf]"Verifica:
python -c "from aspose.note import Document, SaveFormat; print('PDF export ready')"Esportazione di base
Esporta tutte le pagine di un documento in un unico file PDF:
from aspose.note import Document, SaveFormat
doc = Document("MyNotes.one")
doc.Save("output.pdf", SaveFormat.Pdf)Le pagine appaiono nel PDF nello stesso ordine in cui compaiono nel DOM.
Utilizzo di PdfSaveOptions
PdfSaveOptions fornisce un controllo dettagliato sull’esportazione. Passalo invece del semplice SaveFormat enum:
from aspose.note import Document
from aspose.note.saving import PdfSaveOptions
opts = PdfSaveOptions()
doc = Document("MyNotes.one")
doc.Save("output.pdf", opts)Nota su PageIndex / PageCount: Questi campi esistono su PdfSaveOptions ma sono non inoltrati all’esportatore PDF nella versione v26.3.1 e non hanno alcun effetto. L’intero documento viene sempre esportato.
Riferimento a PdfSaveOptions
| Proprietà | Tipo | Predefinito | Descrizione |
|---|---|---|---|
PageIndex | int | 0 | Il campo esiste ma non viene inoltrato all’esportatore PDF in v26.3.1 (non ha effetto) |
PageCount | `int | None` | None |
Esportazione batch
Converti ogni .one file in una directory in 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}")Carica dallo stream, salva su file
Combina il caricamento basato su stream con l’output PDF basato su 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)Ottieni i byte PDF in memoria
Document.Save() accetta un flusso binario direttamente: non è necessario alcun file temporaneo:
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")Valori SaveFormat supportati
| SaveFormat | Stato |
|---|---|
SaveFormat.Pdf | Implementato |
Errori comuni
| Errore | Causa | Correzione |
|---|---|---|
ImportError: No module named 'reportlab' | [pdf] extra non installato | pip install "aspose-note[pdf]" |
UnsupportedSaveFormatException | Usato SaveFormat non-PDF | Usa SaveFormat.Pdf solo |
IncorrectPasswordException | File .one crittografato | Usa un file non crittografato |
FileNotFoundError | Percorso .one di input errato | Verifica il percorso con Path.exists() |
| Errore di autorizzazione sull’output | Directory di output non scrivibile | Verifica i permessi della directory di output |