Exportação PDF — Aspose.Note FOSS para Python
Aspose.Note FOSS for Python supports exporting loaded .one documentos para PDF via Document.Save(). A renderização de PDF é fornecida pela opcional ReportLab biblioteca. Este é o único formato de salvamento atualmente implementado; outros SaveFormat valores geram UnsupportedSaveFormatException.
Pré‑requisitos
Instale a biblioteca com o [pdf] extra para incluir o ReportLab:
pip install "aspose-note[pdf]"Verifique:
python -c "from aspose.note import Document, SaveFormat; print('PDF export ready')"Exportação Básica
Exportar todas as páginas de um documento para um único arquivo PDF:
from aspose.note import Document, SaveFormat
doc = Document("MyNotes.one")
doc.Save("output.pdf", SaveFormat.Pdf)As páginas aparecem no PDF na mesma ordem em que aparecem no DOM.
Usando PdfSaveOptions
PdfSaveOptions fornece controle granular sobre a exportação. Passe-o em vez do simples 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 sobre PageIndex / PageCount: Esses campos existem em PdfSaveOptions mas são não encaminhado para o exportador PDF na v26.3.1 e não tem efeito. O documento inteiro é sempre exportado.
Referência de PdfSaveOptions
| Propriedade | Tipo | Padrão | Descrição |
|---|---|---|---|
PageIndex | int | 0 | O campo existe, mas não é encaminhado para o exportador PDF na v26.3.1 (não tem efeito) |
PageCount | `int | None` | None |
Exportação em Lote
Converter cada .one arquivo em um diretório para 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}")Carregar a partir de Stream, Salvar em Arquivo
Combine o carregamento baseado em stream com a saída de PDF baseada em arquivo:
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)Obter Bytes de PDF na Memória
Document.Save() aceita um fluxo binário diretamente: nenhum arquivo temporário necessário:
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 suportados
| SaveFormat | Status |
|---|---|
SaveFormat.Pdf | Implementado |
Erros comuns
| Erro | Causa | Correção |
|---|---|---|
ImportError: No module named 'reportlab' | [pdf] extra não instalado | pip install "aspose-note[pdf]" |
UnsupportedSaveFormatException | Formato de salvamento não-PDF usado | Usar SaveFormat.Pdf somente |
IncorrectPasswordException | Arquivo .one criptografado | Use um arquivo não criptografado |
FileNotFoundError | Caminho .one de entrada errado | Verifique o caminho com Path.exists() |
| Erro de permissão na saída | Diretório de saída não gravável | Verifique as permissões do diretório de saída |