使用python實(shí)現(xiàn)壓縮PDF文件大小的方法
引言
壓縮 PDF 文件能有效減小文件大小并提高文件傳輸?shù)男?,同時(shí)還能節(jié)省計(jì)算機(jī)存儲(chǔ)空間。除了使用一些專業(yè)工具對(duì)PDF文件進(jìn)行壓縮,我們還可以通過 Python 來執(zhí)行該操作,實(shí)現(xiàn)自動(dòng)化、批量處理PDF文件。
本文將分享一個(gè)簡單有效的使用 Python 壓縮 PDF 文件的方法。需要用到 Spire.PDF for Python庫,可以通過pip命令安裝該庫。
pip install Spire.PDF
使用 Python 實(shí)現(xiàn)PDF 文件壓縮
Spire.PDF for Python 庫可以通過調(diào)整圖像質(zhì)量和壓縮嵌入字體來減小 PDF 文件的大小。 主要步驟及方法如下:
- 導(dǎo)入庫。
- 創(chuàng)建
PdfCompressor
對(duì)象,并傳入需要壓縮的 PDF 文件。 - 獲取壓縮選項(xiàng)(
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對(duì)象并傳入PDF文件 compressor = PdfCompressor("測(cè)試報(bào)告.pdf") # 獲取OptimizationOptions對(duì)象 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àng)。要實(shí)現(xiàn)最大限度地壓縮,我們可以將圖像質(zhì)量設(shè)置為Low。
其他方法:
pdf文件過大,經(jīng)常會(huì)是一個(gè)問題,但是市面上基本上都是收費(fèi)的工具,wps需要開會(huì)員才能使用。因此找了一個(gè)python庫進(jìn)行試驗(yà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") # 需要壓縮后保存的文件路徑
這個(gè)代碼使用非常簡單,主要是壓縮文件里面的圖片質(zhì)量,實(shí)際上圖片質(zhì)量差一些在閱讀器里面是看不出來的區(qū)別,效果如下:
文件直接小了10倍,打開看也不影響觀感,還是比較有意義的。
到此這篇關(guān)于使用python實(shí)現(xiàn)壓縮PDF文件大小的方法的文章就介紹到這了,更多相關(guān)python壓縮PDF大小內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 尋找優(yōu)化使成本函數(shù)最小的最優(yōu)解的方法
這篇文章主要介紹了python 尋找優(yōu)化使成本函數(shù)最小的最優(yōu)解的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12使用python爬取連續(xù)降水?dāng)?shù)據(jù)信息實(shí)例
這篇文章主要為大家介紹了使用python提取連續(xù)降水?dāng)?shù)據(jù)信息實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01快速解決pyqt5窗體關(guān)閉后子線程不同時(shí)退出的問題
今天小編就為大家分享一篇快速解決pyqt5窗體關(guān)閉后子線程不同時(shí)退出的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06python3.7 openpyxl 在excel單元格中寫入數(shù)據(jù)實(shí)例
這篇文章主要介紹了python3.7 openpyxl 在excel單元格中寫入數(shù)據(jù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-09-09利用Python和C++實(shí)現(xiàn)解析gltf文件
gltf是類似于stl、obj、ply等常見的3D對(duì)象存儲(chǔ)格式,它被設(shè)計(jì)出來是為了便于渲染的數(shù)據(jù)轉(zhuǎn)換和傳輸,本文為大家介紹了使用Python和C++解析gltf文件的方法,感興趣的可以了解下2023-09-09python基礎(chǔ)知識(shí)之私有屬性和私有方法
這篇文章主要介紹了python基礎(chǔ)知識(shí)之私有屬性和私有方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03Python中def()函數(shù)的實(shí)戰(zhàn)練習(xí)題
def是define的縮寫,用來自定義函數(shù),下面這篇文章主要給大家介紹了關(guān)于Python中def()函數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07