>  기사  >  백엔드 개발  >  Python으로 PDF를 작동하는 여러 가지 방법 요약

Python으로 PDF를 작동하는 여러 가지 방법 요약

coldplay.xixi
coldplay.xixi앞으로
2020-10-08 17:50:244056검색

오늘

python tutorial 칼럼에는 Python으로 PDF를 작동하는 여러 가지 방법이 요약되어 있습니다.

Python으로 PDF를 작동하는 여러 가지 방법 요약

01

서문

안녕하세요 여러분, 저는 이미 Python 운영 PDF에 대한 사례를 작성했습니다.PDF 일괄 병합 이 사례의 원래 의도는 단지 편리한 스크립트를 제공하는 것입니다. PDF 처리를 위한 매우 실용적인 모듈인 PyPDF2과 관련된 원리에 대해 자세히 설명합니다. 이 기사에서는 주로

  • os 모듈의 포괄적인 적용
  • 을 포함하여 이 모듈을 주의 깊게 분석합니다. 모듈의 포괄적인 적용
  • PyPDF2 모듈 작동

02

기본 작동

PyPDF2 모듈을 가져오는 코드는 다음과 같습니다.

from PyPDF2 import PdfFileReader, PdfFileWriter复制代码

여기에서 두 가지 방법을 가져옵니다.

PdfFileReader
    가능 독자로 이해하세요
  • P dfFileWriter
  • 작가로 이해하실 수 있습니다
  • 다음으로, 몇 가지 사례를 통해 이 두 도구의 경이로움을 더 깊이 이해해 보겠습니다. 사용된 예시 파일은 5개 청구서의 PDF

입니다.

Python으로 PDF를 작동하는 여러 가지 방법 요약
각 송장의 PDF는 다음 두 페이지로 구성됩니다.
03

Merge

첫 번째 작업은 5개의 송장 PDF를 10페이지로 병합

하는 것입니다. 여기서 독자와 작가는 어떻게 협력해야 할까요?

논리는 다음과 같습니다.

읽는 사람은 모든 PDF를 한 번 읽습니다.

    읽는 사람은 읽은 내용을 작성자에게 넘겨줍니다.
  • 작가는 이를 일률적으로 새 PDF로 출력합니다.
  • 여기에 또 다른 중요한 지식 포인트가 있습니다. : 독자는 읽은 내용을 페이지별로 작가에게만 넘겨줄 수 있습니다.
따라서 논리의 1단계와 2단계는 실제로

독립적인 단계가 아닙니다

. 대신 독자가 PDF를 다 읽은 후에는 PDF의 모든 페이지를 순환하여 페이지별로 작성자에게 전달합니다. . 장치. 마지막으로 모든 읽기 작업이 완료될 때까지 기다렸다가 출력하세요.

코드를 보면 아이디어가 더 명확해질 수 있습니다.

from PyPDF2 import PdfFileReader, PdfFileWriter

path = r'C:\Users\xxxxxx'
pdf_writer = PdfFileWriter()

for i in range(1, 6):
    pdf_reader = PdfFileReader(path + '/INV{}.pdf'.format(i))
    for page in range(pdf_reader.getNumPages()):
        pdf_writer.addPage(pdf_reader.getPage(page))

with open(path + r'\合并PDF\merge.pdf', 'wb') as out:
    pdf_writer.write(out)复制代码

모든 콘텐츠가 동일한 작성자에게 전달되어 최종적으로 함께 출력되어야 하므로 작성자의 초기화는 루프 본문 외부에 있어야 합니다.

만약 그렇다면 in the loop 본문에서는

PDF에 액세스할 때마다 새로운 작성자가 생성

되어 각 독자가 작성자에게 제공한 콘텐츠가

반복적으로 덮어쓰기되어 목표를 달성할 수 없게 됩니다. !루프 본문 시작 부분의 코드:

for i in range(1, 6):
    pdf_reader = PdfFileReader(path + '/INV{}.pdf'.format(i))复制代码

목적은 각 루프에서 새 PDF 파일을 읽고 후속 작업을 위해 독자에게 전달하는 것입니다. 실제로 이러한 작성 방법은 별로 권장되지 않습니다. 각 PDF의 이름이 매우 규칙적이기 때문에 반복을 위해 수동으로 숫자를 직접 지정할 수 있습니다. 더 좋은 방법은

glob

모듈을 사용하는 것입니다.

import glob
for file in glob.glob(path + '/*.pdf'):
    pdf_reader = PdfFileReader(path)复制代码
코드에서 pdf_reader.getNumPages():

는 리더의 페이지 수를 가져올 수 있고

range를 사용하면 리더의 모든 페이지를 탐색할 수 있습니다. pdf_writer.addPage(pdf_reader.getPage(page))

현재 페이지를 작가에게 넘겨줄 수 있습니다.

마지막으로 with

를 사용하여 새 PDF를 만들고 작성자의

pdf_writer.write(out) 메소드를 통해 출력합니다. 04

Split

병합 작업에서 독자와 작가의 협력을 이해한다면 분할은 이해하기 쉽습니다. 여기서는 INV1.pdf

를 2개로 분할합니다. PDF 문서를 예로 들면, 먼저 논리를 살펴보겠습니다.

읽는 사람이 PDF 문서를 읽습니다

    읽는 사람이 PDF 문서를 한 페이지씩 작성자에게 전달합니다.
  • 작성자는 문서를 받은 후 즉시 각 페이지를 읽습니다. Output
  • 이 코드 논리를 통해 우리는 또한 작성자의 초기화 및 출력 위치는 루프 외부가 아닌 PDF 읽기 루프의 각 페이지 루프 본문 내에 있어야 한다는 것을 이해할 수 있습니다
코드는 매우 간단합니다:

from PyPDF2 import PdfFileReader, PdfFileWriter
path = r'C:\Users\xxx'
pdf_reader = PdfFileReader(path + '\INV1.pdf')

for page in range(pdf_reader.getNumPages()):
    # 遍历到每一页挨个生成写入器
    pdf_writer = PdfFileWriter()
    pdf_writer.addPage(pdf_reader.getPage(page))
    # 写入器被添加一页后立即输出产生pdf
    with open(path + '\INV1-{}.pdf'.format(page + 1), 'wb') as out:
        pdf_writer.write(out)复制代码

05

Watermark

이번 작업은 INV1.pdf

에 다음 이미지를 워터마크로 추가하는 것입니다. 첫 번째 단계는 준비입니다. Python으로 PDF를 작동하는 여러 가지 방법 요약워터마크로 사용할 이미지를 워드에 삽입하고 적절한 위치를 조정합니다. PDF 파일로 저장하세요
. 그런 다음

copy 모듈을 추가로 사용해야 합니다. 자세한 설명은 아래 그림을 참조하세요.

리더와 라이터를 초기화하고 나중에 사용할 수 있도록 워터마크가 있는 PDF 페이지를 먼저 읽어야 합니다. core 코드는 이해하기가 조금 더 어렵습니다. Python으로 PDF를 작동하는 여러 가지 방법 요약
Python으로 PDF를 작동하는 여러 가지 방법 요약

워터마크 추가는 기본적으로 워터마크가 있는 PDF 페이지와 워터마크가 필요한 각 페이지를 병합하는 것을 의미합니다.

워터마크가 필요한 PDF에는 여러 페이지가 있을 수 있고 워터마크가 있는 PDF에는 한 페이지만 있으므로 직접 추가 워터마크가 있는 PDF를 병합할 때 첫 번째 페이지를 추가하면 워터마크가 있는 PDF 페이지가 사라지는 것을 추상적으로 이해할 수 있습니다. 따라서

직접 병합할 수는 없지만

워터마크가 있는 PDF 페이지는 나중에 사용할 수 있도록 새 페이지(new_page)에 지속적으로 복사한 다음 .mergePage 방법을 사용하여 각 페이지의 병합을 완료해야 합니다. 병합된 PDF 페이지를 병합하여 최종 통합 출력을 위해 페이지가 작성자에게 전달됩니다.

.mergePage

사용 정보: 아래 페이지에 나타납니다.mergePage(위 페이지에 나타남), 최종 효과 06

암호화

암호화는 매우 간단합니다. 기억하세요:

"암호화는 작성자 암호화를 위한 것입니다"

따라서

pdf_writer.encrypt(비밀번호)만 호출하면 됩니다. 관련 작업이 완료되었습니다

단일 PDF를 다음과 같이 암호화합니다. 예:

Python으로 PDF를 작동하는 여러 가지 방법 요약 write at the end

물론 병합, 분할, 암호화 및 워터마킹

PDF

외에도 Python을 사용하여 다음을 수행할 수도 있습니다. Excel과 Word를 결합하여 더 많은 자동화 요구 사항을 달성하세요. 이러한 기능은 독자가 직접 개발할 수 있습니다. 설치 패키지, PDF, 학습 동영상이 포함된 Python 리소스 공유 Junyang 1075110200 이곳은 Python 학습자를 위한 모임 장소입니다. 초급자도 고급자도 환영합니다마지막으로 Python의 핵심 측면 중 하나를 모두가 이해할 수 있기를 바랍니다. 사무 자동화

일괄 작업 - 손을 자유롭게 하고 복잡한 작업을 자동화하세요!

더 많은 관련 무료 학습 권장사항:

python 튜토리얼
(동영상)

위 내용은 Python으로 PDF를 작동하는 여러 가지 방법 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.im에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제