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
| Requisitos | Detalhes |
|---|---|
| Python | 3.9 or later |
| Pacote de produtos | aspose-words-foss (licenciado pelo MIT) |
| Input (input) | A. - Não . .docx arquivo, fluxo ou bytes |
pip install aspose-words-fossCarregamento 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(), ouload_bytes()Antes de ligares.to_light_document()chamandoto_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_paragraphspara uma iteração plana em todos os parágrafos; utilizardoc.sectionsQuando é preciso trabalhar secção por seção. DocumentReaderinstrumentos de trabalhoLdmBuilderMixin, 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ão | Causa da morte | Correção |
|---|---|---|
Vazio. - Não . doc.sections após carga | Arquivo não é um DOCX válido | Verifique 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ão | Ligue 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étodo | Descrição: |
|---|---|
DocumentReader | Leia 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 |
LdmBuilderMixin | Mixin que fornece: to_light_document() |
Document.sections | Lista de secções do documento |
Document.all_paragraphs | Lista plana de todos os parágrafos |
Document.text | Texto simples completo do documento |
Document.page_count | Número de páginas |
Document.headings(max_level) | Lista de parágrafos dos títulos até ao max_level |