Wie man eine OneNote-Datei in Python nach PDF exportiert

Wie man eine OneNote-Datei in Python nach PDF exportiert

Aspose.Note FOSS for Python enables programmatic PDF export of Microsoft OneNote .one Die Exportfunktion wird von der Microsoft Office-Datei ausgeführt, ohne dass eine Microsoft-Office oder ein Dokumentkonverter auf Betriebssystemsebene erforderlich ist. Document.Save() Methode, die durch den optionalen ReportLab PDF-Renderer. Das ist ein Schlüssel.

Vorteile

  1. Serverfreundlich: läuft auf jedem Betriebssystem, einschließlich Headless-Linux-Servern und CI/CD-Containern.
  2. mit einer Leistung von mehr als 100 Werte: direkt an eine io.BytesIO Buffer, keine temporäre Datei erforderlich.
  3. Freie und Open-Source-basierte Software:MIT-Lizenz:

Voraussetzungen für die Durchführung der Maßnahmen

PDF-Export erfordert die optionelle ReportLab-Abhängigkeit. Installieren Sie sie über den [pdf] zusätzlich:

pip install aspose-note

Wenn Sie bereits eine aspose-note ohne zusätzliche:

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

Überprüfen Sie, ob ReportLab verfügbar ist:

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

Schritt für Schritte

Schritt 1: Installieren von aspose-note mit PDF-Unterstützung

pip install aspose-note

Bestätigen Sie die Installation (PDF ist ein nur für den Export geeignetes Format Die Bibliothek erzeugt PDF-Ausgabe aus OneNote Quelldateien; umgekehrter Weg wird nicht unterstützt):

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

Schritt 2: Laden der OneNote-Datei ein

from aspose.note import Document

doc = Document("MyNotes.one")

Schritt 3: Exportieren des gesamten Dokuments in PDF

Der einfachste Export, der alle Seiten mit Standard-Einstellungen abdeckt:

from aspose.note import Document, SaveFormat

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

Schritt 4: Verwenden Sie PdfSaveOptions

PdfSaveOptions Sie können die PDF-Export-Einstellungen konfigurieren:

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

doc = Document("MyNotes.one")

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

Verfügbare PdfSaveOptions

OptionTyp derStandard-NummerBeschreibung
PageIndexint0Nullbasierter Index der ersten zu exportierenden Seite (0 = erste Seite)
PageCount`intNone`None

Schritt 5: Export in einen Speicherstrom

Document.Save() Akzeptiert einen binären Stream direkt: keine temporäre Datei erforderlich.:

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

Schritt 6: Exportieren Sie mehrere Dateien in Batch-Versionen

Prozessmultiple .one Dateien in einem Verzeichnis:

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

Häufige Probleme und Lösungen

1. ImportError: No module named ‘reportlab’

Ursache:Die [pdf] Das Extra wurde nicht installiert.

Behebung:

pip install aspose-note

2. UnsupportedSaveFormatException

Ursache: ein anderes Format als das des SaveFormat.Pdf nur für die SaveFormat.Pdf wird umgesetzt.

Behebung:Immer verwenden: SaveFormat.Pdf für den Export. Andere Formate werden als API-kompatibel erklärt, erhöhen jedoch die UnsupportedSaveFormatException.

3. IncorrectPasswordException

Ursache:Die .one Die Datei ist verschlüsselt. Verschlüsselte Dokumente werden nicht unterstützt.

Behebung:Verwenden Sie eine unverschlüsselte .one Das kommerzielle Aspose.Note Produkt unterstützt Verschlüsselung.

4. FileNotFoundError

Ursache:Die Eingabe: .one Der Pfad ist falsch.

Behebung:Verwendung: pathlib.Path.exists() vor dem Verladen zu validieren:

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

Ursache:Die .one Die PDF-Renderer erzeugt Seiten, die auf dem von ReportLab aus der DOM abgeleiteten Material basieren.

Behebung: Überprüfen Sie den Seiteninhalt vor dem Export:

from aspose.note import Document, RichText

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

Häufig gestellte Fragen

Welche Speicherformate werden unterstützt?

Nur: SaveFormat.Pdf Die Kommission hat die SaveFormat Enum hat genau ein Mitglied: SaveFormat.Pdf.

Kann ich in einen Stream exportieren anstatt eine Datei?

  • Ja, das ist gut. Document.Save() akzeptiert jeden schreibbaren binären Strom als erstes Argument:
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()

Bewahrt der Export die Seitenreihenfolge?

Ja. Seiten werden in derselben Reihenfolge exportiert, wie sie im DOM erscheinen (die durch Iteration des Datensatzes zurückgegebene Reaktion). Document).

Ist der PDF-Export auf Linux verfügbar?

Ja. ReportLab und Aspose.Note FOSS für Python sind beide OS-unabhängig.

Kann ich eine Teilmenge von Seiten exportieren?

Ja, benutzen. PdfSaveOptions mit: PageIndex (Null-basierte Startseite) und PageCount (Anzahl der zu exportierenden Seiten; None = alle verbleibenden) zum Exportieren einer Untermenge von Seiten. Beide Felder werden im v26.3.2 an den PDF-Exporteur weitergeleitet.


Verwandte Ressourcen:

 Deutsch