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:
| Componente | Função |
|---|---|
DocumentReader | Parser DOCX principal lê partes XML do pacote OPC |
LdmBuilderMixin | Construir o modelo de documento Light a partir dos dados analisados |
ShapeParserMixin | Analisa 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
DocumentConstrutor. - Para arquivos com tabelas, acesse-os via
doc.tablesou 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ão | Causa da morte | Correção |
|---|---|---|
| Arquivo não carregado (exceção) | Arquivo ZIP corrupto ou incompleto | Verificar que o ficheiro é válido . .docx (Pacote OPC baseado em ZIP) |
| Imagens em saída perdidas | Peças de imagem não incorporadas na embalagem | Verifique se o DOCX contém imagens incorporadas (não ligadas) |
| Conteúdo em falta na saída | Partes XML obrigatórias ausentes do pacote | O 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étodo | Descrição: |
|---|---|
DocumentReader | Leia documentos DOCX e produz estruturas de dados abstractas. |
LdmBuilderMixin | Métodos de construção do modelo Light Document, que fornece mistura |
ShapeParserMixin | Métodos de análise da forma/desenho do produto misturado |
Document | Representa um documento do Word (a raiz LDM) |
create_reader(path) | Fábrica que retorna o leitor correto para uma extensão de arquivo |