Python 사무 자동화 - PDF 문서 및 PPT 문서 처리

Python 사무 자동화 – PDF 문서 및 PPT 문서 처리



머리말

Python 사무 자동화는 Python 프로그래밍 언어를 사용하여 일상적인 사무 작업과 작업 흐름을 단순화, 가속화 및 자동화하는 스크립트와 프로그램을 만드는 프로세스입니다. Python의 강력한 기능과 풍부한 타사 라이브러리를 기반으로 하여 문서 처리, 데이터 분석, 이메일 관리, 네트워크 통신 등과 같은 다양한 사무 작업을 처리할 수 있습니다.


1. Python을 사용하여 PDF 문서 생성 자동화

Python을 사용하여 PDF 문서 생성을 자동화하려면 타사 라이브러리를 사용하여 PDF 파일을 생성, 편집 및 조작할 수 있습니다. 일반적으로 사용되는 라이브러리는 프로그래밍 방식으로 PDF 문서를 생성하고 텍스트, 이미지, 표 등을 추가할 수 있는 ReportLab입니다.
그 중 Canvas 클래스는 PDF 문서를 생성하고 운영하는 데 사용되는 ReportLab 라이브러리의 중요한 클래스입니다. PDF 문서에 텍스트, 그래픽, 이미지 및 기타 콘텐츠를 추가하는 일련의 방법과 속성을 제공합니다.

Canvas 클래스의 생성자는 다음과 같습니다.

def __init__(self, filename, pagesize=(595.27,841.89), bottomup=1, pageCompression=0, encoding=rl_config.defaultEncoding, verbosity=0, encrypt=None)

매개변수 설명:

  • filename: 생성된 PDF 파일의 이름입니다.
  • pagesize: 페이지 크기, 기본값은 A4 용지 크기입니다.
  • bottomup: 페이지 좌표계의 방향입니다. 기본값은 1입니다. 이는 좌표 원점이 왼쪽 하단에 있음을 의미합니다.
  • pageCompression: 페이지 압축 수준. 기본값은 0이며 압축이 없음을 의미합니다.
  • encoding: 문서 인코딩, 기본값은 rl_config.defaultEncoding입니다.
  • verbosity: 출력 정보의 세부 수준. 기본값은 0이며 출력이 없음을 의미합니다.
  • encrypt: 암호화 옵션. 기본값은 암호화가 없음을 의미하는 없음입니다.

Canvas 클래스의 일반적인 메서드는 다음과 같습니다.

  • drawString(x, y, text): 지정된 좌표 위치에 텍스트를 그립니다.
  • drawImage(image, x, y, width=None, height=None): 지정된 좌표 위치에 이미지를 그립니다.
  • drawRect(x, y, width, height): 직사각형을 그립니다.
  • drawLine(x1, y1, x2, y2): 직선을 그립니다.
  • setFont(fontname, fontsize, leading=None): 글꼴 및 글꼴 크기를 설정합니다.
  • setFillColor(color): 채우기 색상을 설정합니다.
  • setStrokeColor(color): 획 색상을 설정합니다.
  • showPage(): 현재 페이지를 저장하고 새 페이지를 시작합니다.
  • save(): PDF 문서를 저장합니다.

다음은 ReportLab을 사용하여 PDF 문서를 생성하는 방법을 보여주는 기본 예입니다.

1. ReportLab 라이브러리를 설치합니다(아직 설치되지 않은 경우).

pip 설치 Reportlab

2. 간단한 PDF 문서 만들기

from reportlab.lib.pagesizes import letter
# canvas模块有个Canvas类,是创建PDF文档的入口。通过help函数可以查询它的用法。
from reportlab.pdfgen import canvas  
# 创建⼀个PDF⽂件
c = canvas.Canvas("example.pdf", pagesize=letter)
# 添加⽂本到PDF
c.drawString(100, 750, "Hello, World!")
# 添加图片到pdf
c.drawImage("image.jpg", 200, 200, width=100, height=100)
c.showPage()
# 保存PDF
c.save()

위의 예에서는 ReportLab 라이브러리를 가져오고 PDF 문서 개체를 만든 다음 drawString 메서드를 사용하여 PDF에 텍스트를 추가합니다. 마지막으로 생성된 PDF 파일이 저장됩니다.
ReportLab은 또한 테이블 생성, 그래픽 추가, 페이지 레이아웃 사용자 정의 등과 같은 보다 복잡한 기능을 제공합니다. 이 예는 특정 요구 사항에 따라 더 복잡한 PDF 문서를 생성하도록 더욱 확장될 수 있습니다.
ReportLab 외에도 PDFKit(wkhtmltopdf 기반), FPDF, PyPDF2 등과 같은 다른 라이브러리가 있어 자동 PDF 생성 및 작업에 사용할 수 있습니다. 프로젝트의 특정 요구 사항에 따라 PDF 문서를 처리하는 데 적합한 라이브러리를 선택할 수 있습니다.

다음은 몇 가지 간단한 예입니다. 필요한 친구는 한 번 살펴볼 수 있습니다.

  1. PDF킷:
import pdfkit

# 将HTML内容转换为PDF
pdfkit.from_file('input.html', 'output.pdf')

# 将URL转换为PDF
pdfkit.from_url('http://example.com', 'output.pdf')

# 将字符串转换为PDF
pdfkit.from_string('Hello, world!', 'output.pdf')
  1. FPDF:
from fpdf import FPDF

# 创建PDF对象
pdf = FPDF()

# 添加页面
pdf.add_page()

# 设置字体和字号
pdf.set_font('Arial', size=12)

# 添加文本
pdf.cell(0, 10, 'Hello, world!', ln=True)

# 保存PDF
pdf.output('output.pdf')
  1. PyPDF2:
from PyPDF2 import PdfFileReader, PdfFileWriter

# 读取PDF文件
pdf = PdfFileReader('input.pdf')

# 获取页面数量
num_pages = pdf.getNumPages()

# 获取第一页内容
page1 = pdf.getPage(0)

# 旋转页面
page1.rotateClockwise(90)

# 创建新的PDF文件
output_pdf = PdfFileWriter()

# 添加页面
output_pdf.addPage(page1)

# 保存新的PDF文件
with open('output.pdf', 'wb') as f:
    output_pdf.write(f)

2. Python은 PDF 파일 내용을 읽습니다.

Python에서 PDF 파일의 내용을 읽으려면 타사 라이브러리를 사용하여 텍스트 정보를 구문 분석하고 추출할 수 있습니다. 일반적으로 사용되는 라이브러리는 PDF 문서에서 텍스트, 페이지, 책갈피 및 기타 정보를 추출할 수 있는 PyPDF2입니다.
다음은 PyPDF2를 사용하여 PDF 파일 내용을 읽는 방법을 보여주는 기본 예입니다.

1. PyPDF2 라이브러리를 설치합니다(아직 설치되지 않은 경우)

pip 설치 Reportlab

2. PDF 파일 내용 읽기

코드는 다음과 같습니다(예제).

import PyPDF2
# 打开PDF⽂件
pdf_file = open('example.pdf', 'rb')
# 创建⼀个PDF⽂件阅读器对象
pdf_reader = PyPDF2.PdfFileReader(pdf_file)
# 获取PDF⽂件的总⻚数
total_pages = pdf_reader.numPages
# 读取每⼀⻚的⽂本内容
for page_num in range(total_pages):
	page = pdf_reader.getPage(page_num)
	page_text = page.extractText()
	print(f"第 {
      
      page_num + 1} ⻚内容:")
	print(page_text)
	print("\n")
# 关闭PDF⽂件
pdf_file.close()

위의 예에서는 PDF 파일을 먼저 연 다음 파일을 읽기 위해 PdfFileReader 객체를 생성합니다. 그런 다음 PDF 파일의 총 페이지 수를 가져오고 getPage 메서드를 사용하여 각 페이지의 텍스트 내용을 읽은 다음 마지막으로 파일을 닫습니다.
특히 복잡한 활자체, 이미지 또는 사용자 정의 글꼴이 포함된 PDF 파일의 경우 PDF 텍스트 추출이 항상 정확하지는 않을 수 있습니다. 다양한 유형의 PDF 파일을 처리할 때 특정 상황에 따라 텍스트 추출의 정확성을 높이기 위해 일부 후처리가 필요할 수 있습니다.
PyPDF2 외에도 pdfminer, slate 등과 같은 다른 라이브러리가 있으며 PDF 파일의 내용을 읽는 데 사용할 수도 있습니다. 귀하의 필요에 맞는 라이브러리를 선택하고 필요에 따라 추출된 텍스트 데이터를 처리하십시오.

import slate3k as slate

# 打开PDF文件
with open('example.pdf', 'rb') as pdf_file:
    # 创建PDF解析器对象
    pdf_text = slate.PDF(pdf_file)

# 提取PDF文件的文本内容
text = ' '.join(pdf_text)
print("Text in PDF:", text)

3. PowerPoint 프레젠테이션의 Python 작업

Python에서 PowerPoint 프레젠테이션을 작동하려면 타사 라이브러리 python-pptx를 사용할 수 있습니다. 이 라이브러리를 사용하면 PowerPoint 프레젠테이션을 생성, 편집 및 조작할 수 있습니다.

먼저 Python에서 PPT의 기본 구조가 무엇을 의미하는지 이해하십시오.

슬라이드: 슬라이드는 프레젠테이션의 각 페이지에 대한 페이지입니다.

도형: 상자, 각 슬라이드에 삽입되는 상자로 도형 또는 텍스트 상자일 수 있습니다.

실행: 텍스트 블록으로, 일반적으로 문자 수가 적습니다.

단락: 단락, 일반적으로 일련 번호 ㆍ, 1. 등이 포함됩니다.

다음은 몇 가지 일반적인 작업 예입니다.

1. python-pptx 라이브러리를 설치합니다(아직 설치되지 않은 경우).

pip 설치 python-pptx

Windows 시스템을 사용 중인데 설치할 수 없는 경우 cmd 모드에서 URL을 입력하여 국내 청화 이미지를 선택할 수 있습니다.

pip 설치 -i https://pypi.tuna.tsinghua.edu.cn/simple python-pptx

2. 새 PowerPoint 프레젠테이션 만들기

from pptx import Presentation
# 创建⼀个新的演⽰⽂稿对象
prs = Presentation()
# 添加⼀张幻灯⽚
slide = prs.slides.add_slide(prs.slide_layouts[0])
# 添加标题和正⽂
title = slide.shapes.title
title.text = "这是标题"
content = slide.shapes.placeholders[1]
content.text = "这是正⽂"
# 保存演⽰⽂稿
prs.save("example.pptx")

3. 기존 PowerPoint 프레젠테이션을 열고 편집합니다.

from pptx import Presentation
# 打开现有的演⽰⽂稿
prs = Presentation("example.pptx")
# 遍历所有幻灯⽚
for slide in prs.slides:
	for shape in slide.shapes:
		if shape.has_text_frame:
		text_frame = shape.text_frame
		for paragraph in text_frame.paragraphs:
			for run in paragraph.runs:
				run.text = run.text.upper() # 将⽂本转换为⼤写
# 保存修改后的演⽰⽂稿
prs.save("modified_example.pptx")

4. 그림과 도형 삽입

from pptx import Presentation
from pptx.util import Inches
# 打开现有的演⽰⽂稿
prs = Presentation("example.pptx")
# 添加⼀张幻灯⽚
slide = prs.slides.add_slide(prs.slide_layouts[5])
# 添加图⽚
left = Inches(1)
top = Inches(1)
width = Inches(4)
height = Inches(3)
pic = slide.shapes.add_picture("image.jpg", left, top, width, height)
# 添加形状
left = Inches(5)
top = Inches(1)
width = Inches(2)
height = Inches(2)
shape = slide.shapes.add_shape(1, left, top, width, height)
shape.text = "⾃定义形状"
# 保存修改后的演⽰⽂稿
prs.save("modified_example.pptx")

python-pptx 라이브러리는 PowerPoint 프레젠테이션에서 텍스트, 이미지, 도형, 표 등을 생성, 편집 및 조작하기 위한 풍부한 기능을 제공합니다. 이러한 예는 프로젝트 요구 사항을 충족하기 위한 특정 요구 사항에 따라 추가로 확장될 수 있습니다.


요약하다

위 내용은 오늘 공유한 내용입니다. 보신 친구들에게 도움이 되었으면 좋겠습니다. 앞으로도 파이썬 사무자동화 관련 글 공유는 계속해서 업데이트할 예정이니 계속해서 관심 가져주시길 바랍니다.

Guess you like

Origin blog.csdn.net/u014740628/article/details/135080001