Exportación PDF — Aspose.Note FOSS para Python
Aspose.Note FOSS for Python supports exporting loaded .one documentos a PDF mediante Document.Save(). La renderización de PDF es proporcionada por el opcional ReportLab biblioteca. Este es el único formato de guardado implementado actualmente; otros SaveFormat valores generan UnsupportedSaveFormatException.
Requisitos previos
Instale la biblioteca con el [pdf] extra para incluir ReportLab:
pip install "aspose-note[pdf]"Verifique:
python -c "from aspose.note import Document, SaveFormat; print('PDF export ready')"Exportación básica
Exportar todas las páginas de un documento a un único archivo PDF:
from aspose.note import Document, SaveFormat
doc = Document("MyNotes.one")
doc.Save("output.pdf", SaveFormat.Pdf)Las páginas aparecen en el PDF en el mismo orden en que aparecen en el DOM.
Usando PdfSaveOptions
PdfSaveOptions proporciona un control granular sobre la exportación. Páselo en lugar del SaveFormat enumeración:
from aspose.note import Document
from aspose.note.saving import PdfSaveOptions
opts = PdfSaveOptions()
doc = Document("MyNotes.one")
doc.Save("output.pdf", opts)Nota sobre PageIndex / PageCount: Estos campos existen en PdfSaveOptions pero son no se reenvía al exportador PDF en v26.3.1 y no tienen efecto. El documento completo siempre se exporta.
Referencia de PdfSaveOptions
| Propiedad | Tipo | Predeterminado | Descripción |
|---|---|---|---|
PageIndex | int | 0 | El campo existe pero no se envía al exportador PDF en la v26.3.1 (no tiene efecto) |
PageCount | `int | None` | None |
Exportación por lotes
Convertir cada .one archivo en un directorio a 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}")Cargar desde Stream, Guardar en Archivo
Combinar la carga basada en stream con la salida PDF basada en archivo:
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)Obtener bytes PDF en memoria
Document.Save() acepta un flujo binario directamente: no se necesita archivo temporal:
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")Valores de SaveFormat compatibles
| SaveFormat | Estado |
|---|---|
SaveFormat.Pdf | Implementado |
Errores comunes
| Error | Causa | Corregir |
|---|---|---|
ImportError: No module named 'reportlab' | [pdf] extra no instalado | pip install "aspose-note[pdf]" |
UnsupportedSaveFormatException | Se usó SaveFormat no PDF | Usar SaveFormat.Pdf solo |
IncorrectPasswordException | Archivo .one cifrado | Usa un archivo sin cifrar |
FileNotFoundError | Ruta .one de entrada incorrecta | Verifica la ruta con Path.exists() |
| Error de permiso en la salida | El directorio de salida no es escribible | Verifica los permisos del directorio de salida |