오늘
python tutorial 칼럼에는 Python으로 PDF를 작동하는 여러 가지 방법이 요약되어 있습니다.
01
서문
안녕하세요 여러분, 저는 이미 Python 운영 PDF에 대한 사례를 작성했습니다.PDF 일괄 병합 이 사례의 원래 의도는 단지 편리한 스크립트를 제공하는 것입니다. PDF 처리를 위한 매우 실용적인 모듈인 PyPDF2과 관련된 원리에 대해 자세히 설명합니다. 이 기사에서는 주로
02
기본 작동
PyPDF2 모듈을 가져오는 코드는 다음과 같습니다.
from PyPDF2 import PdfFileReader, PdfFileWriter复制代码
여기에서 두 가지 방법을 가져옵니다.
PdfFileReader입니다.
03Merge
첫 번째 작업은 5개의 송장 PDF를 10페이지로 병합
하는 것입니다. 여기서 독자와 작가는 어떻게 협력해야 할까요?논리는 다음과 같습니다.
읽는 사람은 모든 PDF를 한 번 읽습니다.
독립적인 단계가 아닙니다
. 대신 독자가 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 문서를 읽습니다
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
. 그런 다음
copy 모듈을 추가로 사용해야 합니다. 자세한 설명은 아래 그림을 참조하세요.
위 내용은 Python으로 PDF를 작동하는 여러 가지 방법 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!