From babe636ac99c993cc883c7fae5cd6b7ac67294bc Mon Sep 17 00:00:00 2001 From: Leroll Date: Wed, 20 Mar 2024 15:08:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=B8=80=E4=B8=AApdf?= =?UTF-8?q?=E5=8E=8B=E7=BC=A9=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- utils/pdf_compress.py | 46 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 utils/pdf_compress.py diff --git a/.gitignore b/.gitignore index 82aea0b..a294c90 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ *.xmind - +*.DS_Store diff --git a/utils/pdf_compress.py b/utils/pdf_compress.py new file mode 100644 index 0000000..713cb64 --- /dev/null +++ b/utils/pdf_compress.py @@ -0,0 +1,46 @@ +import fitz +import os + +def covert2pic(zoom): + if os.path.exists('.pdf'): + os.removedirs('.pdf') + os.mkdir('.pdf') + for pg in range(totaling): + page = doc.load_page(pg) + zoom = int(zoom) + lurl = '.pdf/%s.png' % str(pg+1) + trans = fitz.Matrix(zoom/100.0,zoom/100.0) + pm = page.get_pixmap(matrix=trans,alpha=False) + pm.save(lurl) + print(page) + doc.close() + +def pic2pdf(obj): + doc = fitz.open() + for pg in range(totaling): + img = '.pdf/%s.png' % str(pg+1) + imgdoc = fitz.open(img) + pdfbytes = imgdoc.convert_to_pdf() + imgpdf = fitz.open("pdf",pdfbytes) + os.remove(img) + doc.insert_pdf(imgpdf) + if os.path.exists(obj): + os.remove(obj) + doc.save(obj) + doc.close() + +def pdfz(sor,obj,zoom): + covert2pic(zoom) + pic2pdf(obj) + +if __name__ == "__main__": + # =============================================== + # 运行前修改以下三个参数, 测试了下,效果不是太好 + zoom = 20 #50代表缩小50%,200代表放大200%,100代表既不放大也不缩小 + sor = 'xx.pdf' #输入文件名 + obj = 'c_xx.pdf' #输出文件名 + # =============================================== + doc = fitz.open(sor) + totaling = doc.page_count + pdfz(sor,obj,zoom) + os.removedirs('.pdf') \ No newline at end of file