Python में एक OneNote फ़ाइल को PDF में कैसे निर्यात करें
Aspose.Note FOSS for Python enables programmatic PDF export of Microsoft OneNote .one Microsoft Office या किसी भी ऑपरेटिंग सिस्टम स्तर पर दस्तावेज़ कनवर्टर की आवश्यकता के बिना सेक्शन फ़ाइलों. निर्यात द्वारा संचालित किया जाता है Document.Save() विकल्प द्वारा समर्थित विधि ReportLab पीडीएफ रेंडर।.
लाभ
- सर्वर-दोस्त: किसी भी ओएस पर चलता है, जिसमें सिरहीन लिनक्स सर्वर और सीआई / सीडी कंटेनर शामिल हैं
- स्ट्रीम क्षमता: सीधे एक के लिए बचाएं
io.BytesIOबफर, कोई अस्थायी फ़ाइल की आवश्यकता नहीं है - मुफ्त और खुले स्रोत: लाइसेंस
आवश्यकताएँ
PDF निर्यात के लिए वैकल्पिक रिपोर्टलैब निर्भरता की आवश्यकता होती है. इसे स्थापित करें [pdf] अतिरिक्त :
pip install aspose-noteयदि आपके पास पहले से ही aspose-note बिना अतिरिक्त के स्थापित:
pip install --upgrade "aspose-note[pdf]"सुनिश्चित करें कि रिपोर्टलाब उपलब्ध है:
python -c "import reportlab; print(reportlab.Version)"कदम-दर-चरण गाइड
चरण 1: PDF समर्थन के साथ एस्पोजे-नोट स्थापित करें
pip install aspose-noteस्थापना की पुष्टि करें (पीडीएफ केवल निर्यात-आधारित प्रारूप है - पुस्तकालय OneNote स्रोत फ़ाइलों से पीडीए आउटपुट का उत्पादन करता है; विपरीत दिशा समर्थित नहीं है):
from aspose.note import Document, SaveFormat
print("aspose-note is ready.")चरण 2: OneNote फ़ाइल लोड करें
from aspose.note import Document
doc = Document("MyNotes.one")चरण 3: पूरे दस्तावेज़ को पीडीएफ में निर्यात करें
सबसे सरल निर्यात, सभी पृष्ठों को डिफ़ॉल्ट सेटिंग्स के साथ कवर करता है:
from aspose.note import Document, SaveFormat
doc = Document("MyNotes.one")
doc.Save("output.pdf", SaveFormat.Pdf)
print("PDF saved to output.pdf")चरण 4: PdfSaveOptions का उपयोग करें
PdfSaveOptions आप PDF निर्यात सेटिंग्स को समायोजित करने की अनुमति देते हैं:
from aspose.note import Document
from aspose.note.saving import PdfSaveOptions
doc = Document("MyNotes.one")
opts = PdfSaveOptions()
doc.Save("output.pdf", opts)उपलब्ध पीडीएफ विकल्प
| विकल्प | प्रकार | डिफ़ॉल्ट | विवरण |
|---|---|---|---|
PageIndex | int | 0 | निर्यात करने के लिए पहली पृष्ठ का शून्य-आधारित सूचकांक (0 = प्रथम पृष्ठ) |
PageCount | `int | None` | None |
चरण 5: एक In-Memory स्ट्रीम में निर्यात करें
Document.Save() एक बाइनरी प्रवाह को सीधे स्वीकार करता है: कोई अस्थायी फ़ाइल आवश्यक नहीं है :
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")चरण 6: बैच निर्यात बहु फ़ाइलों
बहुआयामी प्रक्रियाएं .one एक निर्देशिका में फ़ाइल:
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}")सामान्य समस्याएं और सुधार
1. ImportError: No module named ‘reportlab’
कारणों से: के लिए [pdf] अतिरिक्त स्थापित नहीं किया गया था।.
फिक्स करें:
pip install aspose-note2. UnsupportedSaveFormatException
कारणों से: एक अन्य प्रारूप के रूप में SaveFormat.Pdf इस्तेमाल किया गया है, केवल SaveFormat.Pdf लागू किया जा रहा है।.
फिक्स करें:हमेशा उपयोग करें SaveFormat.Pdf अन्य प्रारूपों को एपीआई संगतता के लिए घोषित किया जाता है लेकिन उठाया जाता UnsupportedSaveFormatException.
3. IncorrectPasswordException
कारणों से: के लिए .one फ़ाइल को एन्क्रिप्ट किया गया है. एंक्रोसॉफ्ट दस्तावेजों का समर्थन नहीं किया जाता है।.
फिक्स करें: एक अज्ञात का उपयोग करें .one वाणिज्यिक Aspose.Note उत्पाद एन्क्रिप्शन का समर्थन करता है।.
4. FileNotFoundError
कारणों से: इनपुट के लिए .one फ़ाइल मार्ग गलत है।.
फिक्स करें: उपयोग करें pathlib.Path.exists() लोड करने से पहले वैध करें:
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
कारणों से: के लिए .one फ़ाइल में पृष्ठ होते हैं लेकिन कोई पाठ सामग्री नहीं होती है (केवल चित्र या टेबल बिना किसी पाठ के होते है). PDF रेंडर पेजों को बनाता है जो रिपोर्टलब डोम से क्या रेंज कर सकता है.
फिक्स करें: निर्यात करने से पहले पृष्ठ सामग्री की जांच करें:
from aspose.note import Document, RichText
doc = Document("MyNotes.one")
text_count = len(doc.GetChildNodes(RichText))
print(f"RichText nodes found: {text_count}")अक्सर पूछे जाने वाले प्रश्न
किस तरह के स्पेस फॉर्मेट का समर्थन किया जाता है?
केवल SaveFormat.Pdf वर्तमान में लागू किया जा रहा है. इस SaveFormat एलईडी में एक सदस्य है: SaveFormat.Pdf.
क्या मैं एक फ़ाइल के बजाय एक स्ट्रीम में निर्यात कर सकता हूं?
हाँ।. Document.Save() किसी भी लिखित बाइनरी स्ट्रीम को अपना पहला तर्क के रूप में स्वीकार करता है:
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()क्या निर्यात पृष्ठ आदेश बनाए रखता है?
हाँ. पृष्ठों को उसी क्रम में निर्यात किया जाता है जो वे डोएम में दिखाई देते हैं (एक आदेश वापस कर दिया गया है जिसके माध्यम से यहटेरेशन किया गया था) Document).
क्या पीडीएफ एक्सटेंशन लिनक्स पर उपलब्ध है?
हाँ. ReportLab और Aspose.Note FOSS दोनों ऑपरेटिंग सिस्टम-स्वतंत्र हैं।.
क्या मैं पृष्ठों का एक उपसेट निर्यात कर सकता हूं?
हाँ, उपयोग करें PdfSaveOptions साथ में PageIndex (सही पृष्ठ पर आधारित प्रारंभिक पृष्ठ) और PageCount (आपका पृष्ठों की संख्या निर्यात करने के लिए है; None दोनों फ़ील्डों को PDF निर्यातक में v26.3.2 में भेजा जाता है।.
संबंधित संसाधन: