把a4的内容打印成a3小册子,a4的pdf文档如何打印成a3

  把a4的内容打印成a3小册子,a4的pdf文档如何打印成a3

  程序功能:使用python将打印扫描的小册子A3格式两页乱码PDF文件转换为A4格式顺序码PDF文件。

  问题:A3幅面双面打印装订成小册子,中间用骑马钉装订,中间拆开的订书钉用复印机一次性扫描成PDF文件。

  阅读不便:页码混乱,A3格式,左右页。

  该程序将扫描的A3格式的PDF文件转换为A4格式的PDF文件,并理顺单个页码。

  编程思路:PDF file==page png(图片文件)(使用:pdf2image,poppler中的pdftommp.exe)

  ==图片文件A3被切割成两个A4格式的图片文件(使用:PIL的图片)

  ==图片文件形成PDF文件(在img2pdf中使用:img2pdf.convert(pngList)

  Import os,sysimport img2pdf 程序功能:使用python将打印扫描的有两页乱码的A3格式的pdf文件转换为A4格式的PDF文件。问题:A3幅面的双面打印小册子被装订成中间有骑马订的小册子,中间打开的订书钉被复印机一次性扫描成PDF文件。阅读不便:页码混乱,A3格式,左右页。该程序将扫描的A3格式的PDF文件转换为A4格式的PDF文件,并理顺单个页码。编程思路:PDF file==page png (image file)(使用:pdf2image中的pdftommp.exe,oppler)==图片文件A3切割成两个A4格式的图片文件(使用:PIL中的image)==图片文件构成PDF文件(使用:img2pdf.convert(pngList)中的img2pdf注意:A4格式是实际测量中使用png格式形成的。重要:(1)程序安装在D: disk(或E:)的D: leader中;(2)解压poppler-0.68.0_x86得到的健忘鞋目录下的文件安装在d:leader健忘鞋;并将d:leader健忘鞋添加到windows的path变量中。(下面的批处理文件已经解决了这个问题)(3)批处理文件可以如下:rem main.cmd path d:leader健忘鞋;当% path % d:CD leader python main . PRG % 1(4)运行时,您可以:main d:A3pdf目录或:直接在main中运行。不要添加命令行参数。使用默认的A3pdf目录:d:leaderpdf。使用时,只需复制要转换为d:leaderpdf的A3PDF文件即可。转换后的文件在d:leaderpdfA4子目录下。转换过程中生成的图像文件位于d:leaderpdfPNG子目录中。这些图片文件可以删除。0.1版01版使用全局变量,所有函数都在一个文件中。程序使用了几个库:pip安装枕头pip安装py pdf 3 pip安装pdf2image pip安装img2 pdf程序也使用了poppler-0.68.0_x86pdf2image是一个包装器,在转换过程中确实需要poppler。

  编程叶照清363992124@qq.com日期2021 .01 .25==============windows版Poppler我使用波普勒库已经有一段时间了,已经完成了一系列不同的项目。这是一套开源的库和命令行工具,对于处理便携文档格式文件非常有用波普勒主要面向Linux操作系统环境,但是开发人员在源代码中也包含了对Windows操作系统的支持。然而,在Windows操作系统上获得最新版本的可执行文件(exe)和/或动态链接库是非常困难的。因此,在经历了多年的痛苦之后,我跳上奥德斯克,与伊利亚基塔耶夫签约,既用工具进行编译,也为将来的轻松编译准备自动化工具。更新:MSVC不是很好的支持,这些天的下载是基于MinGW .所以现在,您可以从Windows操作系统运行以下实用程序!PDF文本从便携文档格式文档中提取所有文本。我建议您使用-布局选项以正确的顺序获取内容. pdf tohtml——我使用-xml选项获得一个列出所有文本段的文本、位置和大小的可扩展标记语言文件,非常便于在c# pdftcairo中处理——用于导出图像类型,包括SVG!更多更小的实用程序下载最新健忘的鞋子ary:波普勒-0。68 .0 _ x 86http://博客。激活。com。au/WP-content/uploads/2018/10/poppler-0。68 .0 _ x86。 7z 来自pdf 2图片。异常导入(PDFInfoNotInstalledError、PDFPageCountError、PDFSyntaxError)来自pdf 2图像导入convert _ from _ path导入OS,sys,py pdf 3来自PIL导入Imagedef pdf 2 img(pdf _ file):basename=OS png img。将(路径)异常另存为e:print(e)def pic _ half(filename 1,No,MaxPage):basename=OS。路径。basename(filename 1)[:-3]base filename=path _ png basename MaxPage=1 img=image。打开(文件名^ 1 .png )size=img。尺寸#打印(尺寸)#准备将图片切割成2张小图片权重=int(size[0] //2)高度=int(size[1] //1) #切割后的小图的宽度和高度#print(weight,height)for j in range(1):for I in range(2):box=(weight * I,height * j,weight * (i 1),height *(j 1))# print(box)img half=img。如果没有% 2==1,则裁剪(框):如果I==0:f save=基本文件名f _ A4 _ {(最大页数):02d } . png else:fsave=基本文件名f _ A4 _ { No:02d }。png else:if I==1:fsave=base filename f _ A4 _ {(MaxPage-No):02d } . png else:fsave=基本文件名f _ A4 _ { No:02d } .png # #打印( t f保存)img半。保存图像。close()def one _ pdf(pdf _ file 1):# # # # A3.pdf总页数测试的是10页==》对折20页## ##尝试:## pdf_stream=open(pdf_file1, rb)## pdf=PyPDF3 .可移植文档格式文件的扩展名(portable document format的缩写)文件阅读器(pdf_stream)##例外:##打印(f"{ pdf _ file 1 }不是合法的便携文档格式文件!)# #退出(1)# # # # maxP=pdf。numpages # # pdf _ stream。close()# # del pdf pdf F2 img(pdf _ file 1)basename=OS。路径。basename(pdf _ file 1)[:-4]for I in range(1,maxP 1):A3 _ png=path _ png f { basename } _ { I-1:02d } print(A3 _ png)No=I pic _ half(A3 _ png,No,maxP * png print( t png name)png list。append(png名称)pfn _ bytes=img 2 pdf。convert(png list)f . write(pfn _ bytes)print(f { A4 _ dir } { bb } _ A4。可移植文档格式文件的扩展名(portable document format的缩写)转换完成。

   n )# # # # # # # # # # # # # # # # # # root=OS。路径。ABS路径(OS。路径。dirname(_ _ file _ _))DD=“”if root。find(:)==1:print(_ _ file _ _)DD=root[:2]path=DD r LEADER PDF path _ A4=path r A4 path _ PNG=path r PNG PDF _ list=[]maxP=10 if len(sys .argv)1:path pdf )==-1:Dir _ l . remove(ff)print(需转换的文件列表:)for I in range(len(Dir _ l)):print(f { I:04d } t { Dir _ l[I]} )PDF _ list=Dir _ l print(f n需转换的文件总数:{ I 1:04d } )else:print(f"{ path }:非法目录)出口(1)如果len(PDF_list)==0 : print(无便携文档格式文件!);PDF _ list的exit(0)# Main _ loop中的PDF _ file:full _ fileName=path PDF _ file print(f { full _ fileName }转换中。 try:pdf _ stream=open(full _ fileName, Rb )pdf=pypdf F3 .pdf阅读器(pdf _ stream)除外:打印(f {完整文件名}不是合法的便携文档格式文件!)exit(1)maxP=pdf。数字图像pdf _ stream。close()del pdf one _ pdf(full _ fileName)pdf _ file=full _ fileName # e: TEST 叶照清. pdf PNG _ dir=OS。路径。dirname(pdf _ file) PNG A4 _ dir=OS。路径。dirname(pdf _ file) A4 pdf _ b _ name=OS。路径。基本名称(pdf _ file)操作系统。chdir(PNG _ dir)doim G2 pdf(PNG _ dir)# eof

把a4的内容打印成a3小册子,a4的pdf文档如何打印成a3