欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python對PDF文檔和PPT文檔的操作詳解

 更新時間:2023年12月22日 09:30:05   作者:逃逸的卡路里  
Python辦公?動化是利?Python編程語?來創(chuàng)建腳本和程序,以簡化、加速和?動化?常辦公任務和?作流程的過程,它基于Python的強?功能和豐富的第三?庫,使得能夠處理各種辦公任務,本文給大家介紹了Python對PDF文檔和PPT文檔的操作,需要的朋友可以參考下

前言

Python辦公?動化是利?Python編程語?來創(chuàng)建腳本和程序,以簡化、加速和?動化?常辦公任務和?作流程的過程。它基于Python的強?功能和豐富的第三?庫,使得能夠處理各種辦公任務,如?檔處理、數據分析、電?郵件管理、?絡通信等等。

一、用Python自動化PDF文檔生成

要使?Python?動化PDF?檔的?成,可以使?第三?庫來創(chuàng)建、編輯和操作PDF?件。?個常?的庫是ReportLab,它允許以編程?式創(chuàng)建PDF?檔,并在其中添加?本、圖像、表格等內容。
其中,Canvas類是ReportLab庫中的一個重要類,用于創(chuàng)建和操作PDF文檔。它提供了一系列方法和屬性,可以在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:加密選項,默認為None,表示不加密。

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 install reportlab

2、創(chuàng)建?個簡單的PDF文檔

from reportlab.lib.pagesizes import letter
# canvas模塊有個Canvas類,是創(chuàng)建PDF文檔的入口。通過help函數可以查詢它的用法。
from reportlab.pdfgen import canvas  
# 創(chuàng)建?個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庫,創(chuàng)建了?個PDF?檔對象,然后使? drawString ?法在PDF上添加?本。最后,保存了?成的PDF?件。
ReportLab還提供了更復雜的功能,如創(chuàng)建表格、添加圖形、?定義??布局等??梢愿鶕唧w的需求進?步擴展這個?例,以?成更復雜的PDF?檔。
除了ReportLab,還有其他?些庫,如PDFKit(基于wkhtmltopdf)、FPDF、PyPDF2等,可以?于PDF?動化?成和操作。可以根據項?的具體需求選擇適合的庫來處理PDF?檔。

以下是一些簡單示例,需要的小伙伴可以看下:

  • PDFKit:
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')
  • FPDF:
from fpdf import FPDF

# 創(chuàng)建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')
  • PyPDF2:
from PyPDF2 import PdfFileReader, PdfFileWriter

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

# 獲取頁面數量
num_pages = pdf.getNumPages()

# 獲取第一頁內容
page1 = pdf.getPage(0)

# 旋轉頁面
page1.rotateClockwise(90)

# 創(chuàng)建新的PDF文件
output_pdf = PdfFileWriter()

# 添加頁面
output_pdf.addPage(page1)

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

二、Python讀取PDF文件內容

要在Python中讀取PDF?件的內容,可以使?第三?庫來解析和提取?本信息。?種常?的庫是PyPDF2,它允許從PDF?檔中提取?本、??、書簽等信息。
下面是?個基本?例,演?如何使?PyPDF2來讀取PDF?件內容:

1、安裝PyPDF2庫(如果尚未安裝)

pip install reportlab

2、讀取PDF?件內容

代碼如下(示例):

import PyPDF2
# 打開PDF?件
pdf_file = open('example.pdf', 'rb')
# 創(chuàng)建?個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?件,然后創(chuàng)建了?個PdfFileReader對象來讀取該?件。然后,獲取PDF?件的總?數,并使? getPage ?法讀取每??的?本內容,最后關閉?件。

請注意,PDF?本提取可能不總是?常精確,特別是對于包含復雜排版、圖像或?定義字體的PDF?件。在處理不同類型的PDF?件時,可能需要根據具體情況進??些后處理來提??本提取的準確性。

除了PyPDF2,還有其他?些庫,如pdfminer、slate等,也可以?于讀取PDF?件的內容。選擇適合需求的庫并根據需要處理提取到的?本數據。

import slate3k as slate

# 打開PDF文件
with open('example.pdf', 'rb') as pdf_file:
    # 創(chuàng)建PDF解析器對象
    pdf_text = slate.PDF(pdf_file)

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

三、Python操作PowerPoint演示文稿

要在Python中操作PowerPoint演??稿,可以使?第三?庫 python-pptx 。這個庫允許創(chuàng)建、編輯和操作PowerPoint演??稿。

先了解下PPT基本結構在python分別是什么含義:

Slide:幻燈片,就是演示文稿中每一頁的頁面。

Shape:方框,在每頁幻燈片內插入的方框,可以是形狀,也可以是文本框。

Run:文字塊,一般為較少字符。

Paragraph:段落,通常有序號?、1.等。

以下是?些常?的操作?例:

1、安裝 python-pptx 庫(如果尚未安裝)

pip install python-pptx

使用windows系統(tǒng),如果出現無法安裝情況,可以在cmd模式下輸入網址選擇國內清華鏡像。

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

2、創(chuàng)建?個新的PowerPoint演示文稿

from pptx import Presentation
# 創(chuàng)建?個新的演??稿對象
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 庫提供了豐富的功能,?于創(chuàng)建、編輯和操作PowerPoint演??稿中的?本、圖像、形狀、表格等。可以根據具體的需求進?步擴展這些?例,以滿?的項?要求。

總結

以上就是Python對PDF文檔和PPT文檔的操作詳解的詳細內容,更多關于Python PDF文檔和PPT文檔操作的資料請關注腳本之家其它相關文章!

相關文章

  • numpy中的掩碼數組的使用

    numpy中的掩碼數組的使用

    本文主要介紹了numpy中的掩碼數組的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • 在win10和linux上分別安裝Python虛擬環(huán)境的方法步驟

    在win10和linux上分別安裝Python虛擬環(huán)境的方法步驟

    這篇文章主要介紹了在win10和linux上分別安裝Python虛擬環(huán)境的方法步驟,虛機環(huán)境有非常多的優(yōu)點,今天我們用的虛擬環(huán)境是virtualenv。感興趣的小伙伴們可以參考一下
    2019-05-05
  • python如何讀取.mtx文件

    python如何讀取.mtx文件

    這篇文章主要介紹了python讀取.mtx文件的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Python實現雞群算法的示例代碼

    Python實現雞群算法的示例代碼

    雞群算法,縮寫為CSO(Chicken?Swarm?Optimization),盡管具備所謂仿生學的背景,但實質上是粒子群算法的一個變體。本文將利用Python語言實現這一算法,感興趣的可以了解一下
    2022-11-11
  • python快速進階利用Tkinter定制一個信息提示框

    python快速進階利用Tkinter定制一個信息提示框

    這篇文章主要介紹了python快速進階利用Tkinter定制一個信息提示框,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • Python3變量與基本數據類型用法實例分析

    Python3變量與基本數據類型用法實例分析

    這篇文章主要介紹了Python3變量與基本數據類型用法,結合實例形式分析了Python3保留字、標識符、變量、基本數據類型及相關操作技巧,需要的朋友可以參考下
    2020-02-02
  • 跟老齊學Python之深入變量和引用對象

    跟老齊學Python之深入變量和引用對象

    本講再次提及變量和引用對象,就是要讓看官對變量和賦值有一個知其然和知其所以然的認識。當然,最后能不能達到此目的,主要看我是不是說的通俗易懂了。如果您沒有明白,就說明我說的還不夠好,可以聯系我,我再為您效勞。
    2014-09-09
  • 詳解使用Selenium爬取豆瓣電影前100的愛情片相關信息

    詳解使用Selenium爬取豆瓣電影前100的愛情片相關信息

    這篇文章主要介紹了詳解使用Selenium爬取豆瓣電影前100的愛情片相關信息,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • python 實現將多條曲線畫在一幅圖上的方法

    python 實現將多條曲線畫在一幅圖上的方法

    今天小編就為大家分享一篇python 實現將多條曲線畫在一幅圖上的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python xlwt設置excel單元格字體及格式

    Python xlwt設置excel單元格字體及格式

    這篇文章主要為大家詳細介紹了Python xlwt設置excel單元格字體及格式的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12

最新評論