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àTipoPredefinitoDescrizione
PageIndexint0Il campo esiste ma non viene inoltrato all’esportatore PDF in v26.3.1 (non ha effetto)
PageCount`intNone`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

SaveFormatStato
SaveFormat.PdfImplementato

Errori comuni

ErroreCausaCorrezione
ImportError: No module named 'reportlab'[pdf] extra non installatopip install "aspose-note[pdf]"
UnsupportedSaveFormatExceptionUsato SaveFormat non-PDFUsa SaveFormat.Pdf solo
IncorrectPasswordExceptionFile .one crittografatoUsa un file non crittografato
FileNotFoundErrorPercorso .one di input erratoVerifica il percorso con Path.exists()
Errore di autorizzazione sull’outputDirectory di output non scrivibileVerifica i permessi della directory di output
 Italiano