Aspose.PDF FOSS for Python Recursos

Aspose.PDF FOSS for Python Recursos

Aspose.PDF FOSS para Python Recursos

Aspose.PDF FOSS para Python é uma biblioteca pure-Python para criar, abrir, modificar e salvar documentos PDF. Esta página apresenta as principais áreas de capacidade e as classes que funcionam como seus pontos de entrada. Cada área é abordada em profundidade em sua própria página do guia do desenvolvedor.


Gerenciamento de Documentos e Páginas

Document é o objeto raiz para cada operação. Construa-o sem argumentos para iniciar um novo documento vazio, ou chame load_from() para ler um existente a partir de um caminho, bytes ou stream. document.pages expõe o PageCollection mutável, e Page.add_text posiciona texto em uma página.

from aspose_pdf import Document

document = Document()
page = document.pages.add()
page.add_text("Hello from Aspose.PDF FOSS!", x=72, y=720, font_size=18)
document.save("hello.pdf")

Extração de Texto e Busca

PdfExtractor vincula-se a um documento e extrai texto página por página. bind_pdf() abre a fonte, extract_text() realiza a extração e get_text() devolve o resultado acumulado.

from aspose_pdf import PdfExtractor

extractor = PdfExtractor()
extractor.bind_pdf("hello.pdf")
extractor.extract_text()
print(extractor.get_text())
extractor.close()

Para busca e substituição posicionadas, por fragmento, TextFragmentAbsorber expõe objetos TextFragment correspondentes com text_search_options controlando a sensibilidade a maiúsculas/minúsculas e a correspondência por expressões regulares.


Renderização de Página para Imagens

Document.save_page_as_image renderiza uma única página diretamente para um arquivo PNG ou TIFF em um DPI configurável. Para acesso de nível inferior, Page.render retorna um RasterizedPage com dados de pixel brutos através de get_pixel() e pixels.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")
document.save_page_as_image(0, "page-1.png", dpi=150)

Formulários e Campos Interativos

Campos AcroForm são gerenciados através de Document.form, uma fachada Form. Form.add_text_field() (e os equivalentes de caixa de seleção, botão de opção, lista e caixa de combinação) cria um novo campo vinculado a uma página e a um retângulo de widget, retornando um Field. Form.fields lista todos os campos atualmente no documento.

from aspose_pdf import Document

document = Document()
page = document.pages.add()
document.form.add_text_field("customer_name", page, (72, 700, 300, 720))

for field in document.form.fields:
    print(field.name, field.field_type)

document.save("form.pdf")

Segurança, Criptografia e Assinaturas

Document.encrypt protege um documento com uma senha de usuário (necessária para abri-lo) e uma senha de proprietário (necessária para alterar permissões); decrypt() e change_passwords() gerenciam a proteção em um documento já aberto. is_encrypted relata o estado atual.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")
document.encrypt(user_password="secret", owner_password="owner-secret")
document.save("encrypted.pdf")

A verificação de assinatura digital é tratada por PdfSignature.validate, que retorna um ValidationResult descrevendo o status de confiança e revogação, e SigningUtils fornece auxiliares de certificado e assinatura PKCS#7/CAdES.


PDF/A e PDF/UA Conformidade

Document.validate_pdfa executa uma verificação heurística de conformidade PDF/A e retorna um PdfAValidationResult; convert_to_pdfa() tenta remediar o documento para esse nível. validate_pdfua() e auto_tag() fornecem a verificação de acessibilidade equivalente e a marcação automática de árvore de estrutura para PDF/UA.

from aspose_pdf import Document

document = Document()
document.load_from("hello.pdf")

result = document.validate_pdfa("1b")
if not result.is_valid:
    document.convert_to_pdfa("1b")

document.auto_tag()
document.save("compliant.pdf")

Dicas e Melhores Práticas

  • Modifique o objeto retornado diretamente por document.pages, page.annotations ou document.form — as edições feitas em uma cópia separada de uma página ou campo não são refletidas quando você chama save().
  • PageCollection é indexado a partir de zero nesta vinculação Python (document.pages[0] é a primeira página).
  • Capture InvalidPasswordException e PdfParseException antes do mais amplo AsposePdfException ao chamar load_from() em entrada não confiável, para que você possa reagir de forma diferente a uma senha incorreta do que a um arquivo corrompido.
  • Chame document.optimize() ou compress_streams() antes de save() em documentos muito editados para remover recursos não utilizados e reduzir o tamanho do arquivo.
  • Passe um PdfLoadLimits limitado para load_from() ao processar PDFs de uma fonte não confiável, a fim de limitar a memória e a contagem de objetos durante a análise.

Problemas Comuns

ProblemaCausaCorreção
save() produz um arquivo com edições não alteradasAs edições foram feitas em uma cópia de página, anotação ou campo, em vez do objeto obtido de document.pages, annotations ou formModifique o objeto retornado diretamente por essas coleções
InvalidPasswordException em load_from()O documento está protegido por senha e nenhuma senha, ou a senha errada, foi fornecidaInsira a senha correta: document.load_from(path, password="...")
validate_pdfa() ainda relata um erro de fonte após convert_to_pdfa()Nenhum arquivo de fonte correspondente foi encontrado no font_lookup_directory fornecidoAdicione a fonte ausente ao diretório de pesquisa ou registre-a com FontRepository antes de converter
A imagem renderizada parece vaziaÍndice de página incorreto passado para save_page_as_image() ou render()pages usa indexação a partir de zero — confirme o índice e verifique se PdfExtractor retorna texto para essa página
Campo adicionado com Form.add_text_field() não aparece na páginaO retângulo do widget está fora do media_box da páginaConfirme se as coordenadas do retângulo estão dentro de Page.media_box

FAQ

O Aspose.PDF FOSS para Python depende de um motor PDF comercial?

Não. É um motor PDF puro-Python desenvolvido do zero, lançado sob a licença MIT. Suas únicas dependências em tempo de execução são cryptography e asn1crypto, usadas para criptografia e verificação de assinaturas.

Posso criar um PDF do zero em vez de abrir um existente?

Sim. Document() sem argumentos cria um documento vazio em memória; chame document.pages.add() para acrescentar páginas antes de salvar.

Quais formatos raster posso renderizar uma página?

Page.render e Document.save_page_as_image produzem saída raster PNG ou TIFF; o RasterizedPage retornado também expõe os dados brutos de pixel através de get_pixel() e da propriedade pixels.

Qual exceção devo capturar para erros específicos do pacote?

Capture AsposePdfException. Cada erro específico do pacote — incluindo análise (PdfParseException), senha e criptografia (PdfSecurityException, InvalidPasswordException), e falhas de validação (PdfValidationException) — deriva dele.

Para onde devo ir a seguir?

Getting Started cobre instalação, licenciamento e um primeiro exemplo funcional. Este guia do desenvolvedor continua com tópicos de gerenciamento de documentos, como formulários, anexos de arquivos incorporados, descoberta de fontes e autoria de outline/bookmark.


API Reference Resumo

Classe/MétodoDescrição
DocumentObjeto raiz — criar, carregar, salvar e gerenciar um PDF
Document.pagesO PageCollection mutável do documento
Document.load_from / Document.saveLer de ou gravar em um caminho, bytes ou fluxo
Document.encrypt / Document.decryptProteger com senha ou remover a proteção
Document.validate_pdfa / Document.convert_to_pdfaVerificação heurística de conformidade PDF/A e conversão
Document.validate_pdfua() / Document.auto_tagVerificação de acessibilidade PDF/UA e marcação automática de estrutura
Page.add_textAdicionar texto posicionado a uma página
Page.renderRenderizar uma página para um RasterizedPage
PdfExtractorExtrair texto da página e anexos incorporados
PdfFileEditorConcatenar, dividir, inserir e excluir páginas entre arquivos
Form / Fieldcontêiner AcroForm e campos individuais de formulário
PdfSignature / SigningUtilsValidação e criação de assinatura digital
AsposePdfExceptionClasse base para cada exceção específica de pacote

Ver também

 Português