Como ler metadados de página do OneNote em Python

Como ler metadados de página do OneNote em Python

OneNote .one arquivos armazenar metadados que você pode ler sem analisar o documento completo DOM. No documento nível, Document.FileFormat diz-lhe qual variante do OneNote o ficheiro usa. Na página de entrada, página nível, cada um dos quais Page carrega o autor, marca de tempo da criação, última marca do tempo modificada e nível hierárquico. Aspose.Note FOSS para Python expõe estes através do Document e a) Page Aulas.


Precondições

pip install aspose-note

Metadados de nível do documento

A Comissão Document Objeto expõe uma propriedade de metadados:

PropriedadeTipo de veículo:Descrição:
doc.FileFormatFileFormatA variante do OneNote: FileFormat.OneNote2010, FileFormat.OneNoteOnline, ou FileFormat.Unknown.
from aspose.note import Document

doc = Document("MyNotes.one")
print(f"File format: {doc.FileFormat}")

Metadados de nível de página

Cada um. Page O objeto contém:

PropriedadeTipo de veículo:Descrição:
page.Author`strNone`
page.CreationTime`datetimeNone`
page.LastModifiedTime`datetimeNone`
page.Level`intNone`

Passo 1: Leia os metadados de cada página

from aspose.note import Document, Page

doc = Document("ProjectNotes.one")

for i, page in enumerate(doc, start=1):
    title = ""
    if page.Title and page.Title.TitleText:
        title = page.Title.TitleText.Text.strip()

    level = page.Level or 0
    indent = "  " * level

    author = page.Author or "(unknown)"
    created = page.CreationTime.strftime("%Y-%m-%d") if page.CreationTime else "(none)"
    modified = page.LastModifiedTime.strftime("%Y-%m-%d %H:%M") if page.LastModifiedTime else "(none)"

    print(f"{indent}[{i}] {title or '(untitled)'}")
    print(f"{indent}    Author:   {author}")
    print(f"{indent}    Created:  {created}")
    print(f"{indent}    Modified: {modified}")
    print(f"{indent}    Level:    {level}")

Exemplo completo: Relatório de metadados

from aspose.note import Document

def print_metadata_report(one_path: str) -> None:
    doc = Document(one_path)

    print()

    for i, page in enumerate(doc, start=1):
        title = ""
        if page.Title and page.Title.TitleText:
            title = page.Title.TitleText.Text.strip()

        level = page.Level or 0
        prefix = "  " * level + f"[{i}]"

        parts = [prefix, f'"{title or "(untitled)"}"']
        if page.Author:
            parts.append(f"by {page.Author}")
        if page.CreationTime:
            parts.append(f"created {page.CreationTime.strftime('%Y-%m-%d')}")
        if page.LastModifiedTime:
            parts.append(f"modified {page.LastModifiedTime.strftime('%Y-%m-%d')}")

        print("  ".join(parts))

print_metadata_report("ProjectNotes.one")

Detecção de subpáginas

No OneNote, as subpáginas são visuais e estão inseridas sob a página principal. page.Level a propriedade reflete esta anidação:

from aspose.note import Document

doc = Document("MyNotes.one")

for page in doc:
    level = page.Level or 0
    title = ""
    if page.Title and page.Title.TitleText:
        title = page.Title.TitleText.Text.strip()

    indent = "  " * level
    marker = "├─" if level > 0 else "•"
    print(f"{indent}{marker} {title or '(untitled)'}")

Valores de nível:

  • 0:Página de nível superior:
  • 1: subpágina de primeiro nível (um travessão)
  • 2: subpágina de segundo nível (dois travessões)

Notas

  • Todos os carimbos de tempo (CreationTime, LastModifiedTime) são: datetime objetos em UTC quando presentes.
  • page.Level Renda de rendimentos None para páginas onde o nível não foi armazenado no formato binário. Tratar None como: 0 Utilização de: page.Level or 0.

Ver também:

 Português