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
- Serverfreundlich: läuft auf jedem Betriebssystem, einschließlich Headless-Linux-Servern und CI/CD-Containern.
- mit einer Leistung von mehr als 100 Werte: direkt an eine
io.BytesIOBuffer, keine temporäre Datei erforderlich. - 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-noteWenn 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-noteBestä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
| Option | Typ der | Standard-Nummer | Beschreibung |
|---|---|---|---|
PageIndex | int | 0 | Nullbasierter Index der ersten zu exportierenden Seite (0 = erste Seite) |
PageCount | `int | None` | 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-note2. 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: