pypdf é uma biblioteca PDF pura em python, gratuita e de código aberto, capaz de dividir, mesclar, cortar e transformar páginas de arquivos PDF. Ele também pode adicionar dados personalizados, opções de visualização e senhas a arquivos PDF. pypdf também pode recuperar texto e metadados de PDFs.
Consulte pdfly para obter um aplicativo CLI que usa pypdf para interagir com PDFs.
Instale o pypdf usando pip:
pip install pypdf
Para usar pypdf com criptografia ou descriptografia AES, instale dependências extras:
pip install pypdf[crypto]
NOTA :
pypdf
3.1.0 e superior incluem melhorias significativas em comparação com versões anteriores. Consulte o guia de migração para obter mais informações.
from pypdf import PdfReader
reader = PdfReader ( "example.pdf" )
number_of_pages = len ( reader . pages )
page = reader . pages [ 0 ]
text = page . extract_text ()
pypdf pode fazer muito mais, por exemplo, dividir, mesclar, ler e criar anotações, descriptografar e criptografar e muito mais. Confira a documentação para exemplos de uso adicionais!
Para perguntas e respostas, visite StackOverflow (marcado com pypdf).
Manter o pypdf é um esforço colaborativo. Você pode apoiar o projeto escrevendo documentação, ajudando a restringir problemas e enviando código. Consulte o arquivo CONTRIBUTING.md para obter mais informações.
A experiência que os usuários do pypdf têm abrange toda a gama, desde iniciantes que desejam tornar sua vida mais fácil até especialistas que desenvolveram software antes da existência do PDF. Você pode contribuir com a comunidade pypdf respondendo perguntas no StackOverflow, ajudando nas discussões e perguntando aos usuários que relatam problemas para MCVE's (Código + PDF de exemplo!).
Um bom tíquete de bug inclui um MCVE - um exemplo verificável completo e mínimo. Para pypdf, isso significa que você deve fazer upload de um PDF que causa o bug, bem como o código que você está executando com toda a saída. Use print(pypdf.__version__)
para nos informar qual versão você está usando.
Todas as contribuições de código são bem-vindas, mas as menores têm mais chances de serem incluídas em tempo hábil. Adicionar testes de unidade para novos recursos ou casos de teste para bugs que você corrigiu nos ajuda a garantir que a solicitação pull (PR) esteja correta.
pypdf inclui um conjunto de testes que pode ser executado com pytest
:
$ pytest
===================== test session starts =====================
platform linux -- Python 3.6.15, pytest-7.0.1, pluggy-1.0.0
rootdir: /home/moose/GitHub/Martin/pypdf
plugins: cov-3.0.0
collected 233 items
tests/test_basic_features.py .. [ 0%]
tests/test_constants.py . [ 1%]
tests/test_filters.py .................x..... [ 11%]
tests/test_generic.py ................................. [ 25%]
............. [ 30%]
tests/test_javascript.py .. [ 31%]
tests/test_merger.py . [ 32%]
tests/test_page.py ......................... [ 42%]
tests/test_pagerange.py ................ [ 49%]
tests/test_papersizes.py .................. [ 57%]
tests/test_reader.py .................................. [ 72%]
............... [ 78%]
tests/test_utils.py .................... [ 87%]
tests/test_workflows.py .......... [ 91%]
tests/test_writer.py ................. [ 98%]
tests/test_xmp.py ... [100%]
========== 232 passed, 1 xfailed, 1 warning in 4.52s ==========