Construir um modelo de documento leve com o DocumentReader

Construir um modelo de documento leve com o DocumentReader

Construir um modelo de documento leve com o DocumentReader

DocumentReader é o ponto de entrada para a leitura dos ficheiros DOCX no Aspose.Words FOSS. Aceita entrada como um caminho de arquivo, uma corrente de E/S ou bytes brutos e expõe o documento como um light_document_model.Document (LDM) um objeto Python estruturado árvore que é fácil de inspeccionar e transformar.


Precondições

RequisitosDetalhes
Python3.9 or later
Pacote de produtosaspose-words-foss (licenciado pelo MIT)
Input (input)A. - Não . .docx arquivo, fluxo ou bytes
pip install aspose-words-foss

Carregamento a partir de um caminho de arquivo

DocumentReader.load_file(filepath) Lida um arquivo DOCX por caminho. to_light_document() A Comissão não pode, por conseguinte, tomar medidas para evitar que a situação se torne mais difícil.

from aspose.words_foss import DocumentReader

reader = DocumentReader()
reader.load_file("data/report.docx")
doc = reader.to_light_document()

print("Page count:", doc.page_count)
print("Sections:", len(doc.sections))

Carregamento a partir de um fluxo

DocumentReader.load_stream(stream) aceita qualquer objeto tipo arquivo com um read() método. Isto é útil para dados provenientes de respostas HTTP, arquivos ZIP ou Buffers de memória.

from aspose.words_foss import DocumentReader

reader = DocumentReader()
with open("data/report.docx", "rb") as fh:
    reader.load_stream(fh)

doc = reader.to_light_document()
print("Paragraphs:", len(doc.all_paragraphs))

Carregamento a partir de bytes

DocumentReader.load_bytes(data) aceita um bytes ou a) bytearray Objeto. Utilização Este é o caso quando o conteúdo DOCX já está na memória (por exemplo, obtido de uma base de dados). ou construída programaticamente).

from aspose.words_foss import DocumentReader

with open("data/report.docx", "rb") as fh:
    data = fh.read()

reader = DocumentReader()
reader.load_bytes(data)
doc = reader.to_light_document()
print("Text preview:", doc.text[:200])

Navegação na estrutura do LDM

Depois de ligares . to_light_document(), o retorno Document O objeto expõe o Árvore de documento completo:

from aspose.words_foss import DocumentReader

reader = DocumentReader()
reader.load_file("data/report.docx")
doc = reader.to_light_document()

# Sections
for section in doc.sections:
    print("Section paragraphs:", len(section.paragraphs))

# All paragraphs (flat list across all sections)
for para in doc.all_paragraphs:
    if para.text.strip():
        print(" -", para.text[:80])

# Headings
for heading in doc.headings(max_level=2):
    print("H:", heading.text)

Leitura do texto completo do documento

Document.text Retorna o conteúdo completo do documento em texto simples, concatenando todo o texto do parágrafo em todas as secções:

reader = DocumentReader()
reader.load_file("data/report.docx")
doc = reader.to_light_document()
print(doc.text[:500])

Dicas e melhores práticas

  • Sempre ligue. load_file(), load_stream(), ou load_bytes() Antes de ligares. to_light_document() chamando to_light_document() num leitor descarregado pode apresentar um erro ou devolver um documento vazio.
  • Utilização: load_bytes() quando você controla o ciclo de vida do documento na memória; evita abertura de arquivos.
  • Utilização: doc.all_paragraphs para uma iteração plana em todos os parágrafos; utilizar doc.sections Quando é preciso trabalhar secção por seção.
  • DocumentReader instrumentos de trabalho LdmBuilderMixin, o que significa: to_light_document() está disponível como um método de mistura a mesma interface é compartilhada com outro leitor Aulas na biblioteca.

Problemas comuns

EmissãoCausa da morteCorreção
Vazio. - Não . doc.sections após cargaArquivo não é um DOCX válidoVerifique se o arquivo é aberto no Word; verifique que não está protegido por senha
doc.all_paragraphs está vazio.Documentos sem texto no corpo (por exemplo, apenas cabeçalhos/pedaços de página)Verificação doc.header_paragraphs e a) doc.footer_paragraphs em vez disso .
AttributeError em 1 de Setembro de to_light_document()Método de carga não chamado antes da conversãoLigue para um dos nossos serviços. load_file(), load_stream(), ou load_bytes() Primeiro .

FAQ

O que é a DL?

O modelo de documento leve (light_document_model.Document) é um abstracto, Árvore de objetos nativa Python que representa um documento do Word. Separa a lógica do documento do formato binário DOCX e é projetado para fácil manipulação programática.

Posso modificar o LDM e escrever de volta para DOCX?

Sim, depois de modificar o sistema. doc Objeto, passe-o para o LdmDocxWriter.write(doc, path) para produzir um arquivo DOCX atualizado. Ver o Guia de escritores LdmDocx Para detalhes.

O que é? LdmBuilderMixin - Adicionar?

LdmBuilderMixin O Conselho Europeu de to_light_document() método. DocumentReader herda dele, então você sempre acessar este método através da instância de leitura.


Resumo de referência da API

Classe / MétodoDescrição:
DocumentReaderLeia a entrada DOCX e constrói a representação LDM
DocumentReader.load_file(filepath)Carregar um arquivo DOCX por caminho
DocumentReader.load_stream(stream)Cargas de um fluxo semelhante a arquivo
DocumentReader.load_bytes(data)Cargas de um bytes objeto
DocumentReader.to_light_document()Retorna o documento carregado como um LDM Document
LdmBuilderMixinMixin que fornece: to_light_document()
Document.sectionsLista de secções do documento
Document.all_paragraphsLista plana de todos os parágrafos
Document.textTexto simples completo do documento
Document.page_countNúmero de páginas
Document.headings(max_level)Lista de parágrafos dos títulos até ao max_level

Ver também:

 Português