Jak exportovat soubor OneNote do PDF v jazyce Python

Jak exportovat soubor OneNote do PDF v jazyce Python

Aspose.Note FOSS for Python enables programmatic PDF export of Microsoft OneNote .one Export je zpracován pomocí aplikace Microsoft Office. Document.Save() Metodou podporovanou volitelným ReportLab PDF renderer.

Výhody

  1. Služební přátelský: běží na jakémkoli operačním systému, včetně bezhlavých Linuxových serverů a kontejnerů CI/CD
  2. S kapacitou proudění: přímo na: io.BytesIO Buffer, není třeba dočasného souboru.
  3. Volný a open-source:Licence MIT:

Předpoklady

Export PDF vyžaduje volitelnou závislost ReportLab. Nainstalujte ji prostřednictvím aplikace [pdf] dodatečné:

pip install aspose-note

Pokud už jste to udělali, aspose-note nainstalované bez dodatečného:

pip install --upgrade "aspose-note[pdf]"

Ověřte, zda je ReportLab k dispozici:

python -c "import reportlab; print(reportlab.Version)"

Krok za krokem

Krok 1: Nainstalujte aspose-note s podporou PDF

pip install aspose-note

Potvrďte instalaci (PDF je formát pouze pro export knihovna vytváří výstup PDF ze zdrojových souborů OneNote; obrácený směr není podporován):

from aspose.note import Document, SaveFormat
print("aspose-note is ready.")

Krok 2: Nahrát soubor OneNote

from aspose.note import Document

doc = Document("MyNotes.one")

Krok 3: Exportovat celý dokument do PDF

Nejjednodušší export, který pokrývá všechny stránky s výchozími nastavením:

from aspose.note import Document, SaveFormat

doc = Document("MyNotes.one")
doc.Save("output.pdf", SaveFormat.Pdf)
print("PDF saved to output.pdf")

Krok 4: Použijte PdfSaveOptions

PdfSaveOptions umožňuje nastavit PDF exportní nastavení:

from aspose.note import Document
from aspose.note.saving import PdfSaveOptions

doc = Document("MyNotes.one")

opts = PdfSaveOptions()
doc.Save("output.pdf", opts)

Dostupné možnosti PdfSaveOptions

Možnost:Typ:PředvoleněPopis:
PageIndexint0Index první stránky, která má být exportována (0 = první stránka) na základě nuly
PageCount`intNone`None

Krok 5: Export do souboru v paměti

Document.Save() přijímá binární soubor přímo: není potřeba dočasný soubory.:

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")

Krok 6: Složka exportování více souborů

Procesy vícečetné .one soubory v adresáři:

from pathlib import Path
from aspose.note import Document, SaveFormat

input_dir = Path("./onenote_files")
output_dir = Path("./pdf_output")
output_dir.mkdir(exist_ok=True)

for one_file in input_dir.glob("*.one"):
    doc = Document(str(one_file))
    out_path = output_dir / one_file.with_suffix(".pdf").name
    doc.Save(str(out_path), SaveFormat.Pdf)
    print(f"Exported: {one_file.name} -> {out_path.name}")

Obvyklé problémy a řešení

1. ImportError: No module named ‘reportlab’

Příčina::Účetní dvůr: [pdf] Extra nebyla nainstalována.

Opravy:

pip install aspose-note

2. UnsupportedSaveFormatException

Příčina:: jiný formát než: SaveFormat.Pdf Používá se pouze v případě, že: SaveFormat.Pdf je prováděna.

Opravy:Vždy používat: SaveFormat.Pdf Pro vývoz. Jiné formáty jsou deklarovány pro kompatibilitu s API, ale zvyšují počet souborů. UnsupportedSaveFormatException.

3. IncorrectPasswordException

Příčina::Účetní dvůr: .one Zde je kódovaný soubor. Zašifrované dokumenty nejsou podporovány.

Opravy:Použijte nešifrovaný kód . .one Komerční produkt Aspose.Note podporuje šifrování.

4. FileNotFoundError

Příčina::Přístup: .one Směrnice souboru je nesprávná.

Opravy:Použití: pathlib.Path.exists() před nakládkou ověřit:

from pathlib import Path
from aspose.note import Document, SaveFormat

path = Path("MyNotes.one")
assert path.exists(), f"File not found: {path.resolve()}"
doc = Document(str(path))
doc.Save("output.pdf", SaveFormat.Pdf)

5. Output PDF is blank or empty

Příčina::Účetní dvůr: .one soubor obsahuje stránky, ale žádný textový obsah (pouze obrázky nebo tabulky bez textu). PDF renderer vytváří stránky na základě toho, co ReportLab může vykreslit z DOM.

Opravy: Před exportem ověřte obsah stránky:

from aspose.note import Document, RichText

doc = Document("MyNotes.one")
text_count = len(doc.GetChildNodes(RichText))
print(f"RichText nodes found: {text_count}")

Časté otázky

Které formáty ukládání jsou podporovány?

Pouze: SaveFormat.Pdf je v současné době prováděna. SaveFormat enum má přesně jednoho člena: SaveFormat.Pdf.

Můžu exportovat do souboru, ne na stream?

  • Ano, jsem. Document.Save() přijímá jako první argument jakýkoli zapsatelný binární tok:
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()

Zachovává export pořadí stránek?

Ano. Stránky se exportují ve stejném pořadí, v jakém jsou zobrazeny v DOM (pořadím vráceným iterováním funkce “Domain” nebo “Retour”) a pak je možné vybrat z nich následující: Document).

Je na Linuxu k dispozici export PDF?

Ano. ReportLab a Aspose.Note FOSS pro Python jsou oba nezávislé na operačním systému.

Můžu exportovat podmnožinu stránek?

Ano, použijte. PdfSaveOptions s: PageIndex (startová stránka na bázi nuly) a PageCount (počet stran, které mají být vyvezeny; None Obě pole jsou předány PDF exportér v verzi 26.3.2.


Související zdroje:

 Čeština