Trabalhar com o DOCX Reader

Trabalhar com o DOCX Reader

Trabalhar com o DOCX Reader

A Comissão DocumentReader classe lê Office Open XML (.docx) arquivos e produz uma estrutura de dados abstractas o Light Document Model (LDM). trata parágrafos, tabelas, formas, imagens e formatação, tornando o conteúdo disponível para manipulação ou conversão.


Lendo um arquivo DOCX

A abordagem mais simples é a utilização do método de cálculo da taxa de desemprego. Document constructor, que seleciona automaticamente: DocumentReader para o .docx Arquivos:

import aspose.words_foss as aw

doc = aw.Document("input.docx")
print(f"Sections: {len(doc.sections)}")
for para in doc.all_paragraphs:
    print(para.text)

Arquitetura do DocumentReader

DocumentReader utiliza duas combinações para dividir as responsabilidades:

ComponenteFunção
DocumentReaderParser DOCX principal lê partes XML do pacote OPC
LdmBuilderMixinConstruir o modelo de documento Light a partir dos dados analisados
ShapeParserMixinAnalisa elementos de desenho e forma incorporados no documento

Todos os três trabalham em conjunto internamente. Interagimos com o resultado através da comunicação e do trabalho de análise, que é a forma como as pessoas se relacionam com os resultados. Document API.


Extração de texto

Utilização: get_text() num documento carregado para extrair texto simples sem guardar em um ficheiro:

import aspose.words_foss as aw

doc = aw.Document("contract.docx")
text = doc.get_text()
print(text[:500])

Trabalhar com parágrafos e formatar

Acesso a propriedades de nível de parágrafo através do LDM:

import aspose.words_foss as aw

doc = aw.Document("styled.docx")
for para in doc.all_paragraphs:
    for run in para.runs:
        if run.font.bold:
            print(f"Bold: {run.text}")

Cada um. Run carrega propriedades de fonte (em negrito, itálico, tamanho, cor) que foram analisadas a partir do DOCX XML.


Manuseio de formas e imagens

A Comissão ShapeParserMixin Os elementos de desenho são extraídos durante a análise. As formas aparecem no LDM como: ShapeNode Objetos dentro do conteúdo de parágrafos:

import aspose.words_foss as aw

doc = aw.Document("with-images.docx")
for para in doc.all_paragraphs:
    for node in para.content_sequence:
        if hasattr(node, 'shape_type'):
            print(f"Shape: {node.shape_type}")

Dicas e melhores práticas

  • Utilização: Document("file.docx") para fluxos de trabalho padrão ele lida com a seleção do leitor, validação de pacotes e construção LDM automaticamente.
  • Para entrada baseada em fluxo (carregamentos na web), passar um objeto semelhante a arquivo para o Document Construtor.
  • Para arquivos com tabelas, acesse-os via doc.tables ou a) doc.all_tables.
  • Para o processamento por lotes, reutilize o mesmo processo Python para evitar despesas gerais de importação repetidas.

Problemas comuns

EmissãoCausa da morteCorreção
Arquivo não carregado (exceção)Arquivo ZIP corrupto ou incompletoVerificar que o ficheiro é válido . .docx (Pacote OPC baseado em ZIP)
Imagens em saída perdidasPeças de imagem não incorporadas na embalagemVerifique se o DOCX contém imagens incorporadas (não ligadas)
Conteúdo em falta na saídaPartes XML obrigatórias ausentes do pacoteO ficheiro pode ser truncado; reexportação a partir da aplicação de origem.

FAQ

O que é o modelo de documento leve (LDM)?

O LDM é a representação interna compartilhada entre todos os leitores. Ele abstraz detalhes específicos do formato (OPC XML, binário OLE2) em uma estrutura comum de seções, parágrafos, runes, tabelas e formas.

O DocumentReader pode lidar com arquivos DOCM (com habilitação de macro)?

Macro habilitado .docm Os arquivos usam a mesma estrutura OPC. O leitor pode analisar o conteúdo do documento, mas as macros não são preservadas ou executadas.

Como o leitor lida com documentos grandes?

O leitor processa as partes XML sequencialmente. Uso de memória escala com o tamanho do documento. Para documentos muito grandes, considere processar secções individualmente.


Resumo de referência da API

Classe / MétodoDescrição:
DocumentReaderLeia documentos DOCX e produz estruturas de dados abstractas.
LdmBuilderMixinMétodos de construção do modelo Light Document, que fornece mistura
ShapeParserMixinMétodos de análise da forma/desenho do produto misturado
DocumentRepresenta um documento do Word (a raiz LDM)
create_reader(path)Fábrica que retorna o leitor correto para uma extensão de arquivo
 Português