pypdf는 PDF 파일의 페이지를 분할, 병합, 자르기 및 변환할 수 있는 무료 오픈 소스 순수 Python PDF 라이브러리입니다. 또한 PDF 파일에 사용자 정의 데이터, 보기 옵션 및 비밀번호를 추가할 수도 있습니다. pypdf는 PDF에서도 텍스트와 메타데이터를 검색할 수 있습니다.
pypdf를 사용하여 PDF와 상호 작용하는 CLI 애플리케이션은 pdfly를 참조하세요.
pip를 사용하여 pypdf를 설치합니다.
pip install pypdf
AES 암호화 또는 암호 해독과 함께 pypdf를 사용하려면 추가 종속성을 설치하십시오.
pip install pypdf[crypto]
참고 :
pypdf
3.1.0 이상에는 이전 버전에 비해 상당한 개선이 포함되어 있습니다. 자세한 내용은 마이그레이션 가이드를 참조하세요.
from pypdf import PdfReader
reader = PdfReader ( "example.pdf" )
number_of_pages = len ( reader . pages )
page = reader . pages [ 0 ]
text = page . extract_text ()
pypdf는 분할, 병합, 주석 읽기 및 생성, 암호 해독 및 암호화 등 훨씬 더 많은 작업을 수행할 수 있습니다. 추가 사용 예는 문서를 확인하세요!
질문과 답변을 보려면 StackOverflow(pypdf 태그가 지정됨)를 방문하세요.
pypdf를 유지하는 것은 공동 노력입니다. 문서를 작성하고, 문제 범위를 좁히고, 코드를 제출하여 프로젝트를 지원할 수 있습니다. 자세한 내용은 CONTRIBUTING.md 파일을 참조하세요.
pypdf 사용자의 경험은 삶을 더 쉽게 만들고 싶은 초보자부터 PDF가 존재하기 전에 소프트웨어를 개발한 전문가까지 모든 범위를 포괄합니다. StackOverflow에 대한 질문에 답변하고, 토론을 돕고, MCVE(코드 + 예제 PDF!) 문제를 보고하는 사용자에게 질문하여 pypdf 커뮤니티에 기여할 수 있습니다.
좋은 버그 티켓에는 최소한의 완전한 검증 가능한 예인 MCVE가 포함됩니다. pypdf의 경우 이는 버그를 발생시키는 PDF와 모든 출력과 함께 실행 중인 코드를 업로드해야 함을 의미합니다. print(pypdf.__version__)
사용하여 사용 중인 버전을 알려주세요.
모든 코드 기여를 환영하지만 작은 기여가 적시에 포함될 가능성이 더 높습니다. 새로운 기능에 대한 단위 테스트나 수정한 버그에 대한 테스트 사례를 추가하면 PR(Pull Request)이 제대로 작동하는지 확인하는 데 도움이 됩니다.
pypdf에는 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 ==========