使用python實現(xiàn)壓縮PDF文件大小的方法
引言
壓縮 PDF 文件能有效減小文件大小并提高文件傳輸?shù)男?,同時還能節(jié)省計算機(jī)存儲空間。除了使用一些專業(yè)工具對PDF文件進(jìn)行壓縮,我們還可以通過 Python 來執(zhí)行該操作,實現(xiàn)自動化、批量處理PDF文件。
本文將分享一個簡單有效的使用 Python 壓縮 PDF 文件的方法。需要用到 Spire.PDF for Python庫,可以通過pip命令安裝該庫。
pip install Spire.PDF
使用 Python 實現(xiàn)PDF 文件壓縮
Spire.PDF for Python 庫可以通過調(diào)整圖像質(zhì)量和壓縮嵌入字體來減小 PDF 文件的大小。 主要步驟及方法如下:
- 導(dǎo)入庫。
- 創(chuàng)建
PdfCompressor對象,并傳入需要壓縮的 PDF 文件。 - 獲取壓縮選項(
OptimizationOptions),并設(shè)置字體和圖片的壓縮。
壓縮字體:
• 啟用字體壓縮:SetIsCompressFonts(True)方法
• 或取消字體嵌入:SetIsUnembedFonts(True)方法
壓縮圖片:
• 設(shè)置圖片質(zhì)量:SetImageQuality(imageQuality: ImageQuality)方法(支持設(shè)置High/ Medium /Low)。
• 調(diào)整圖片大?。?strong>SetResizeImages(True)方法。
• 啟用圖片壓縮:SetIsCompressImage(True)方法。 - 調(diào)用
CompressToFile()方法,壓縮PDF文件并保存到指定路徑下。
Python 代碼:
from spire.pdf.common import *
from spire.pdf import *
# 創(chuàng)建PdfCompressor對象并傳入PDF文件
compressor = PdfCompressor("測試報告.pdf")
# 獲取OptimizationOptions對象
options = compressor.OptimizationOptions
# 壓縮字體
options.SetIsCompressFonts(True)
# 取消字體嵌入
# options.SetIsUnembedFonts(True)
# 設(shè)置圖片質(zhì)量
options.SetImageQuality(ImageQuality.Medium)
# 調(diào)整圖片大小
options.SetResizeImages(True)
# 壓縮圖片
options.SetIsCompressImage(True)
# 壓縮PDF文件并保存
compressor.CompressToFile("PDF壓縮.pdf")
Spire.PDF for Python 庫允許我們根據(jù)具體需要靈活調(diào)整壓縮選項。要實現(xiàn)最大限度地壓縮,我們可以將圖像質(zhì)量設(shè)置為Low。
其他方法:
pdf文件過大,經(jīng)常會是一個問題,但是市面上基本上都是收費(fèi)的工具,wps需要開會員才能使用。因此找了一個python庫進(jìn)行試驗:
首先需要安裝
pip install aspose-pdf
運(yùn)行的代碼:
import aspose.pdf as ap
compressPdfDocument = ap.Document("SnapFusion.pdf") # 需要壓縮的pdf文件路徑
pdfoptimizeOptions = ap.optimization.OptimizationOptions()
pdfoptimizeOptions.image_compression_options.compress_images = True
pdfoptimizeOptions.image_compression_options.image_quality = 10
compressPdfDocument.optimize_resources(pdfoptimizeOptions)
compressPdfDocument.save("SnapFusion_compress.pdf") # 需要壓縮后保存的文件路徑這個代碼使用非常簡單,主要是壓縮文件里面的圖片質(zhì)量,實際上圖片質(zhì)量差一些在閱讀器里面是看不出來的區(qū)別,效果如下:

文件直接小了10倍,打開看也不影響觀感,還是比較有意義的。
到此這篇關(guān)于使用python實現(xiàn)壓縮PDF文件大小的方法的文章就介紹到這了,更多相關(guān)python壓縮PDF大小內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中文分詞,使用結(jié)巴分詞對python進(jìn)行分詞(實例講解)
下面小編就為大家?guī)硪黄猵ython中文分詞,使用結(jié)巴分詞對python進(jìn)行分詞的實例講解。有比較好的參考價值,希望能給大家做個參考。一起跟隨小編過來看看吧2017-11-11
windows下安裝Python虛擬環(huán)境virtualenvwrapper-win
這篇文章主要介紹了windows下安裝Python虛擬環(huán)境virtualenvwrapper-win,內(nèi)容超簡單,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-06-06
在python中利用pycharm自定義代碼塊教程(三步搞定)
這篇文章主要介紹了在python中利用pycharm自定義代碼塊教程(三步搞定),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
Django靜態(tài)資源URL STATIC_ROOT的配置方法
這篇文章主要介紹了Django靜態(tài)資源URL STATIC_ROOT的配置方法,本文給出配置方法和兩種使用方法,需要的朋友可以參考下2014-11-11
Python3從零開始搭建一個語音對話機(jī)器人的實現(xiàn)
這篇文章主要介紹了Python3從零開始搭建一個語音對話機(jī)器人的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
Python eval()與exec()函數(shù)使用介紹
exec函數(shù)執(zhí)行的是python語句,沒有返回值,eval函數(shù)執(zhí)行的是python表達(dá)式,有返回值,exec函數(shù)和eval函數(shù)都可以傳入命名空間作為參數(shù),本文給大家介紹下Python eval()和exec()函數(shù),感興趣的朋友跟隨小編一起看看吧2023-01-01

