Export PDF — Aspose.Note FOSS pour Python
Aspose.Note FOSS for Python supports exporting loaded .one documents en PDF via Document.Save(). Le rendu PDF est fourni par le module optionnel ReportLab bibliothèque. C’est le seul format d’enregistrement actuellement implémenté ; les autres SaveFormat valeurs déclenchent UnsupportedSaveFormatException.
Prérequis
Installez la bibliothèque avec le [pdf] module supplémentaire pour récupérer ReportLab :
pip install "aspose-note[pdf]"Vérifiez :
python -c "from aspose.note import Document, SaveFormat; print('PDF export ready')"Exportation de base
Exporter toutes les pages d’un document vers un seul fichier PDF :
from aspose.note import Document, SaveFormat
doc = Document("MyNotes.one")
doc.Save("output.pdf", SaveFormat.Pdf)Les pages apparaissent dans le PDF dans le même ordre qu’elles apparaissent dans le DOM.
Utilisation de PdfSaveOptions
PdfSaveOptions offre un contrôle fin sur l’exportation. Utilisez‑le à la place du simple SaveFormat énumération :
from aspose.note import Document
from aspose.note.saving import PdfSaveOptions
opts = PdfSaveOptions()
doc = Document("MyNotes.one")
doc.Save("output.pdf", opts)Note sur PageIndex / PageCount: ces champs existent sur PdfSaveOptions mais sont non transmis à l’exportateur PDF dans v26.3.1 et n’ont aucun effet. Le document complet est toujours exporté.
Référence de PdfSaveOptions
| Propriété | Type | Par défaut | Description |
|---|---|---|---|
PageIndex | int | 0 | Le champ existe mais non transmis à l’exportateur PDF dans v26.3.1 (n’a aucun effet) |
PageCount | `int | None` | None |
Exportation par lots
Convertir chaque .one fichier d’un répertoire en 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}")Charger depuis un flux, enregistrer dans un fichier
Combiner le chargement basé sur un flux avec la sortie PDF basée sur un fichier :
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)Obtenir les octets PDF en mémoire
Document.Save() accepte un flux binaire directement: aucun fichier temporaire nécessaire:
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")Valeurs SaveFormat prises en charge
| SaveFormat | Statut |
|---|---|
SaveFormat.Pdf | Implémenté |
Erreurs courantes
| Erreur | Cause | Correction |
|---|---|---|
ImportError: No module named 'reportlab' | [pdf] extra non installé | pip install "aspose-note[pdf]" |
UnsupportedSaveFormatException | Format d’enregistrement non-PDF utilisé | Utiliser SaveFormat.Pdf uniquement |
IncorrectPasswordException | Fichier .one chiffré | Utiliser un fichier non chiffré |
FileNotFoundError | Chemin .one d’entrée incorrect | Vérifier le chemin avec Path.exists() |
| Erreur d’autorisation sur la sortie | Répertoire de sortie non accessible en écriture | Vérifiez les permissions du répertoire de sortie |