A jegyzet dokumentummal való munka

A Bizottság Document a klassz az Aspose.Note for Python document object model (DOM) gyökere . Minden olvasás, átjárás vagy export művelet egy Document példány, amely a következőket képviseli: egyetlen .one A részlet fájlt.


Dokumentum betöltése

Töltés egy fájl útvonalról

Adja át az utat a… .one közvetlenül a Document a konstruktor:

from aspose.note import Document

doc = Document("MyNotes.one")

A bináris áramlék terhelése

Használjon fájlhoz hasonló objektumot, ha az adatok hálózati válaszból, felhő tároló blobból vagy memóriában lévő pufferből származnak:

from pathlib import Path
from aspose.note import Document

with Path("MyNotes.one").open("rb") as f:
    doc = Document(f)

Üres dokumentum létrehozása

A következőket kell létrehozni: Document nem indokolva egy új OneNote dokumentum programozását:

from aspose.note import Document, Page

doc = Document()
doc.AppendChildLast(Page())

A lehetőségekkel töltés

Használat LoadOptions a töltés idején az opcionális paraméterek beállításához:

from aspose.note import Document, LoadOptions

opts = LoadOptions()
opts.LoadHistory = True   # include page revision history in the DOM
doc = Document("MyNotes.one", opts)
LoadOptions tulajdonA típus:Előzetesen megadottLeírás
LoadHistoryboolFalseMikor? True, a laptörténeti módosítások szerepelnek a DOM-ban és hozzáférhetőek az interneten keresztül . Document.GetPageHistory
DocumentPassword`strNone`None

Dokumentumformátum felismerése

A Bizottság FileFormat A tulajdonság meghatározza, hogy a fájl mely OneNote formátumváltozatot használja:

from aspose.note import Document, FileFormat

doc = Document("MyNotes.one")

if doc.FileFormat == FileFormat.OneNote2010:
    print("OneNote 2010 format")
elif doc.FileFormat == FileFormat.OneNoteOnline:
    print("OneNote Online format")
elif doc.FileFormat == FileFormat.OneNote2007:
    print("OneNote 2007 format")
else:
    print("Format:", doc.FileFormat)
FileFormat értékLeírás
OneNote2010Standard .one OneNote 2010 és újabb verziókban készített fájl
OneNoteOnline.one OneNote Online / Microsoft 365 által írt fájl
OneNote2007Örökség .one OneNote 2007 formátumából
UnknownNem sikerült azonosítani a formátumot.

Iteráló oldalak

A oldalak a közvetlen gyermekei. Document.Használjon egy for egyszerű iteráció:

from aspose.note import Document

doc = Document("MyNotes.one")

for page in doc:
    title_text = (
        page.Title.TitleText.Text
        if page.Title and page.Title.TitleText
        else "(untitled)"
    )
    author = page.Author or "(unknown)"
    level = page.Level or 1
    indent = "  " * (level - 1)
    print(f"{indent}{title_text}  [by {author}]")

Használat GetChildNodes(Page) hogy egyszerre egy betűzött listát kapjon az összes oldalról:

from aspose.note import Document, Page

doc = Document("MyNotes.one")
pages = doc.GetChildNodes(Page)
print(f"Total pages: {len(pages)}")

Oldalas metaadatok

TárgyakA típus:Leírás
Title`TitleNone`
Author`strNone`
CreationTime`datetimeNone`
LastModifiedTime`datetimeNone`
Level`intNone`
IsConflictPageboolTrue ha az oldal egy szinkronizált konfliktus másolat.

A dokumentumfa átjárása

Document örökölte a CompositeNode, amely teljes fa átjárási módszereket ad:

from aspose.note import Document, RichText

doc = Document("MyNotes.one")

# Extract all plain text from the entire document
all_text = [rt.Text for rt in doc.GetChildNodes(RichText) if rt.Text]
print("\n".join(all_text))

A DOM hierarchiája:

Document
  └── Page (0..n)
        ├── Title
        │     ├── TitleText (RichText)
        │     ├── TitleDate (RichText)
        │     └── TitleTime (RichText)
        └── Outline (0..n)
              └── OutlineElement (0..n)
                    ├── RichText
                    ├── Image
                    ├── Table
                    │     └── TableRow → TableCell → RichText / Image
                    └── AttachedFile

A fő átjárási módszerek a következőkből származnak: CompositeNode:

MódszerLeírás
GetChildNodes(NodeType)A megadott típushoz megfelelő összes leszármazott gépelt listáját adja vissza.
AppendChildLast(node)A gyermek listánál egy gyerek csomópontot kell hozzáadni.
AppendChildFirst(node)Adj egy gyermek csomót a kezdetben
InsertChild(index, node)Egy adott indexbe helyezzen egy gyermeket.
RemoveChild(node)Eltávolítani a gyermek csomót
GetEnumerator()Iterált közvetlen gyermekek

Oldalak története

Ha tele van LoadHistory=True, Document.GetPageHistory Visszaadja az összes mentett módosítást. egy oldalról, a legrégebbiről a legújabbra sorolva:

from aspose.note import Document, LoadOptions

opts = LoadOptions()
opts.LoadHistory = True
doc = Document("MyNotes.one")

for page in doc.GetChildNodes(None.__class__.__mro__[0]):  # iterate pages
    pass

# Get revisions for a specific page
import aspose.note as an

doc2 = Document("MyNotes.one", opts)
pages = doc2.GetChildNodes(an.Page)
if pages:
    history = doc2.GetPageHistory(pages[0])
    print(f"Revision count: {history.Count}")
    for rev in history:
        print(f"  Modified: {rev.LastModifiedTime}")

Megjegyzés:: GetPageHistory üres értékkel tér vissza. PageHistory objektív, amikor: LoadHistory az a False Mindig beállítva. opts.LoadHistory = True ha szükség van rá, a betöltés előtt. felülvizsgálati adatok.


Takarítás és export

Használat Document.Save PDF az egyetlen támogatott exportformátum.

Tárolja egy fájlba

from aspose.note import Document, SaveFormat

doc = Document("MyNotes.one")
doc.Save("output.pdf", SaveFormat.Pdf)

Működés a memóriában

import io
from aspose.note import Document, SaveFormat

doc = Document("MyNotes.one")
buf = io.BytesIO()
doc.Save(buf, SaveFormat.Pdf)
pdf_bytes = buf.getvalue()

Megőrzés opciókkal

Használat PdfSaveOptions (az Európai Unió Hivatalos Lapjában) aspose.note.saving) a lapválasztás ellenőrzésére:

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

doc = Document("MyNotes.one")

# Export pages 2 and 3 only (zero-based index)
opts = PdfSaveOptions(PageIndex=1, PageCount=2)
buf = io.BytesIO()
doc.Save(buf, opts)
pdf_bytes = buf.getvalue()

Fontos.: A PDF exportra a ReportLab függőség szükséges. A telepítéshez: pip install "aspose-note[pdf]".


A szerkezetváltozás észlelése

Hívj! DetectLayoutChanges a dokumentum módosítása után, hogy újra kiszámítsa az elrendezés mérőszámait. mentése előtt:

from aspose.note import Document, Page

doc = Document()
page = Page()
doc.AppendChildLast(page)

# ... add content to page ...

doc.DetectLayoutChanges()
doc.Save("output.pdf")

Tippek és legjobb gyakorlatok

  • Egyszer tölteni, többször lekérdezni.: Document az egész .one A memóriába a Várj egy percet! Document eset és hívás GetChildNodes többször, mint a következőkben: Minden egyes lekérdezéshez újra tölteni a fájlt.
  • A csekk. IsConflictPage: A OneNote szinkronizációval konfliktusos oldalak is előállíthatók. Filtráljon a következőkkel: [p for p in doc if not p.IsConflictPage] a tartalom feldolgozása előtt.
  • Használat LoadHistory=False (alapértelmezés szerint) a sebességre vonatkozóan:A laptörténet jelentős memóriát ad hozzá, és a Csak a beállított LoadHistory=True amikor kifejezetten szükség van a felülvizsgálati adatokra.
  • Nagy fájlokhoz való áramlás: A felolvasás során egy nyílt fájlobjektumot adja át az útvonalszál helyett . nagy .one A programot a parszálás befejezése után nyitva kell tartani.
  • Hívj! DetectLayoutChanges előzőleg Save:A dokumentum programozási konstrukciójának megtervezése: és a csatlakozó csomópontok, hívás DetectLayoutChanges() a felület koordinátáinak biztosítása érdekében, a PDF-be történő exportálás előtt következetes.

Általános kérdések

A kérdésOkokMegjavítani.
IncorrectPasswordException terhelveA fájl titkosított; a titkozott dokumentumok nem támogathatók.Szerezzen egy titkosított másolatot a fájltól.
FileCorruptedException terhelveA fájl törléses vagy nem támogatott belső formátumban van.Ellenőrizze, hogy a fájl érvényes. .one rész (nem a) .onetoc2 tartalomtáblás)
UnsupportedSaveFormatException mentésPDF- formaton kívüli formátumban menteni próbálkozott.Csak a következők: SaveFormat.Pdf exportra támogatott
Üres. GetPageHistory eredményLoadOptions.LoadHistory nem állított be a True a rakodás előttÚjra töltse a dokumentumot: opts.LoadHistory = True
ModuleNotFoundError: reportlabPDF exportolás kísérlete a PDF extra nélkülMenj! pip install "aspose-note[pdf]"

FAQ

Milyen OneNote formátumokat tartalmazhat.Fogalmaz olvasható?

Mindhárom OneNote-részlet formátuma: OneNote2007, OneNote2010,és a következők: OneNoteOnline. Használat doc.FileFormat annak azonosítására, hogy melyik változatot töltötték be.

Visszaírhatom a… .one - A fájl, miután elolvastad?

Nem, visszaírom a… .one nem valósítható meg. Export to PDF with Document.Save a következő: csak a kiviteli műveletet támogatja.

Hogyan olvassak egy adott oldalt cím szerint?

Iterációs oldalak és összehasonlítás page.Title.TitleText.Text a célszekrényre:

from aspose.note import Document

doc = Document("MyNotes.one")
target = next(
    (p for p in doc
     if p.Title and p.Title.TitleText and p.Title.TitleText.Text == "My Page"),
    None,
)

Hogyan számolhatom az aloldalt a felső szintű oldalaktól elkülönítve?

Használat page.Level: az 1. szint a legmagasabb, a 2. szint egy aloldal és így tovább.

from aspose.note import Document

doc = Document("MyNotes.one")
top_level = [p for p in doc if (p.Level or 1) == 1]
sub_pages  = [p for p in doc if (p.Level or 1) > 1]
print(f"Top-level: {len(top_level)}, Sub-pages: {len(sub_pages)}")

Célja.Fogalmazás .onetoc2 tartalomtáblák?

Nem, csak… .one A programok támogatják a részlet fájlok. .onetoc2 A jegyzetfüzet fel fogja emelni a FileCorruptedException.


API-referencia összefoglaló

Rendszer / módszerLeírás
Document(path_or_stream, options?)Töltés a .one üres dokumentum létrehozása vagy fájl felállítását
Document.FileFormatA formatváltozat (FileFormat enum)
Document.GetChildNodes(NodeType)A megadott típus összes leszármazotta csomópontjának felvételére .
Document.GetPageHistory(page)Szerezzen egy oldal módosítási történelmét (követelmény) LoadHistory=True)
Document.Save(target, format_or_options)PDF-be exportálás fájl útvonalon vagy áramlással
Document.DetectLayoutChanges()Újra számítsuk ki a layout mérőszámokat programos szerkesztések után
Document.Accept(visitor)A DOM-on egy DocumentVisitor alosztály
LoadOptions.LoadHistoryBeállítva: True A DOM-be az oldalak felülvizsgálatának beillesztése.
LoadOptions.DocumentPasswordTartósított; titkosított fájlok emelése IncorrectPasswordException
FileFormatEnum: OneNote2010, OneNoteOnline, OneNote2007, Unknown
SaveFormat.PdfAz egyetlen támogatott exportformátum
PageHistory.CountA rendelkezésre álló oldal-módosítások száma
Page.LevelAloltalom (1 = felső szint)
Page.IsConflictPageTrue szinkronizált konfliktus másolatok esetében

Lásd még:

 Magyar