c++ 字符串合并_python 批量合并PDF小软件

以后再也不用为打印试验报告发愁啦!

    以后再也不用为打印试验报告发愁啦!

        以后再也不用为打印试验报告发愁啦!

539a3c1b98639b54cd2319a40d65415e.png

(一堆试验报告)

前言

每当项目结束文件归档的时候,总有一大批试验报告需要打印出来存档。传统手工作业的方式(即打开一个PDF文件→打印出来→关闭PDF文件→打开另一个PDF文件→打印出来……)作业方式效率太低,有时候需要忙活好几天,同时不可避免的会出现漏打、多打等问题。为了避免不必要的重复工作,减少加班,这个时候可以使用python大大提高我们的工作效率。 面对上述问题,通常有两种解决方案:①把所有待打印的PDF文件合并成一个文件,然后打印这一份文件即可;②使用python遍历每一个PDF文件,并传送给打印机,依次打印每一个文件。本文主要使用方法①,即把所有的PDF文件合并成一个,然后再打印。这个过程中最难的就是批量合并PDF文件了。

别担心,我已经编写好了一个小程序,在文末的链接中下载就可以使用啦!

1c52d19fed90c70cb87af5ec23108202.gif

(软件使用过程)

使用方法

1.软件界面

使用鼠标左键,双击两下,等到4~5秒程序即自动打开,打开后的界面如下图所示。

44a845544911a7094ee6f6df2c71cb09.png

2.读入PDF文件

首先需要把所有需要打印的PDF文件存在同一个文件夹内,然后用程序读取这个文件夹内的内容。当然数据接口也可以做成直接选择PDF文件的样式,如您需要,请联系作者修改。

程序中加入了按字符串排序和忽略加密PDF文件的功能,如果您想新生成的PDF按照一定的顺序,请直接修改文件名(比如按照顺序修改成1.pdf、2.pdf、3.pdf、4.pdf……)。加密的PDF文件将自动跳过,不进行任何处理。

单击“读入PDF存放文件夹”按钮,选择一个存放待处理PDF文件的文件夹。选择好文件夹后程序会自动读入此文件夹内的所有pdf格式的文件并显示在小程序左边空白区域。程序中添加的筛选代码,非PDF格式的文件是不会读取进来的哦。文件夹的路径会显示在右上方空白文本框内。

2fc3b13740a0b5b253786f7295184eae.gif

e79e6efa217ce38ca239bc24288f842b.png

3.保存生成的PDF文件

单击“保存合并后的PDF文件”按钮,会弹出一个问话框,让用户自动选择文件的保存位置及名称。选择完成之后程序自动执行,等待程序运行(根据PDF文件数和电脑配置不同,时间也不同,此时不要着急哈!)。程序运行结束之后会在主界面显示运行时间及生成的PDF文件的总页数。

9318c06406e9d5e6bd9ecd64b1710d46.gif 

4.显示程序运行时间。

对于一般的小文件,一般几十秒钟的时间就够了,对于一些比较大的PDF文件可能需要耗时几分钟。为此专门在主界面设置了一个文本框用于显示程序运行耗时,单位为s(秒)。

5.帮助文件。

在主界面左上角点击帮助,或者在主界面任意位置单击右键均会弹出帮助菜单,单击对应选项可以查看对应的内容。

7c67d19f51b2da7138073bca2f1431d9.png

软件的使用也就这些内容了。如果想了解程序原理的可以参考下面这个代码。

工作原理

以下代码为python原始代码,可以在python中运行。代码中不包括GUI内容。

from PyPDF2 import PdfFileMerger,PdfFileReader

import os

import glob

import time

# 统计程序执行时间

start_time = time.time()

path =r"C:\Users\Administrator\Desktop\pdfinput"

# 获取文件名及路径,并按字符串顺序进行排序

files = sorted(glob.glob(os.path.join(path,"*.pdf")))

print(files)

# 获取每个pdf文件信息,并添加到新建文件

result_pdf = PdfFileMerger()

for file in files:

   with open(file, "rb") as fp:

       pdf_reader = PdfFileReader(fp)

       if pdf_reader.isEncrypted:

           print(f"忽略加密文件:{file}")

           continue

       result_pdf.append(pdf_reader, import_bookmarks=True)

# 新生成PDF文件的存放路径及名称

pdf_out_path =r"C:\Users\Administrator\Desktop\combined.pdf"

pdf_out = open(pdf_out_path,"wb")

result_pdf.write(pdf_out)

result_pdf.close()

pdf_out.close()

print("新生成PDF文件的页码为%s"% (PdfFileReader(open(pdf_out_path, "rb")).numPages))

# 显示程序执行耗时

print("程序执行耗时为%.3f" %(time.time() - start_time))

小程序及原始代码下载地址: 链接:https://pan.baidu.com/s/1zGR2_2e9GdGCilC59dV4dw 提取码:yfwo

陪你一起走过

春夏秋冬

8580cd46fe137c03e66e570fe79808e5.png 79a7c274eafc8df1cbf940d9b74b1b71.png

 座椅检测知多少

乘用车|商用车|工程机械空·

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值