文章目录

  • 1.将一个文件夹下的所有pdf文件合并为一个文件
    • 这里还有一个
  • 2.重新生成PDF文件

如题,每次都要重新写脚本很烦人,放在CSDN当做工具吧!

1.将一个文件夹下的所有pdf文件合并为一个文件

def merge_pdf_files(path, save_path, outputname):# 将给定文件夹(路径为path)下所有的pdf文档合并为一个文档name_list = os.listdir(path)pdf_name_list = []for name in name_list:if name[-4:] == ".pdf":pdf_name_list.append(name)else:passoutputfile = open(save_path + "\\" + outputname, 'wb')save_file = PdfFileWriter()for name_i in pdf_name_list:file_i = PdfFileReader(open(path + "\\" + name_i, 'rb'))for pageNum in range(file_i.numPages):page = file_i.getPage(pageNum)save_file.addPage(page)save_file.write(outputfile)outputfile.close()

这里还有一个

import PyPDF2 as pp2
import ospath = r"XXX\YYY"       # 存放多个PDF文档的文件夹路径
filenamelist = os.listdir(path)pdfWriter = pp2.PdfFileWriter()
def addnewpdf(pr):for pageNum in range(pr.numPages):pageObj = pr.getPage(pageNum)pdfWriter.addPage(pageObj)for i in filenamelist:pdfFileObj_i = open(path+"/"+i, "rb")pdfreader_i = pp2.PdfFileReader(pdfFileObj_i ,strict=False) # ) #addnewpdf(pdfreader_i)pdfWriter.write(open(r'EEE\\aaa.pdf', "wb")) # 合并以后的PDF文件路径

2.重新生成PDF文件

下面这段代码是将一个已有的PDF文件重新生成一次。

这个操作的背景是这样的:有些PDF源文档很奇怪,你可以从上面复制文字,在文档内进行搜索,但是没有办法添加书签。而这三项尤其是添加书签是一个文档从废变宝的基础。采用虚拟打印的方式可以部分解决这个问题,但是虚拟打印的PDF是没有办法再复制文字以及在文档内搜索了。

这种情况下用Python脚本处理这个问题就两全其美了,代码如下:

import PyPDF2 as pp2
import ospath = r"XXXX\YYYYY"        # 存放多个PDF文档的文件夹路径
filenamelist = os.listdir(path)def create_another_file(file_path):pdfFileObj_i = open(file_path, "rb")pdfreader_i = pp2.PdfFileReader(pdfFileObj_i, strict=False)for pageNum in range(pdfreader_i.numPages):pageObj = pdfreader_i.getPage(pageNum)pdfWriter.addPage(pageObj)for i in filenamelist:pdfWriter = pp2.PdfFileWriter()file_path = path + "\\" + icreate_another_file(file_path)pdfWriter.write(open(path + "\\test\\" + i, "wb"))    # 重新生成的PDF文件

将一个文件夹下的所有pdf文件合并为一个文件相关推荐

  1. linux整个目录复制移动,Linux将一个文件夹或文件夹下的所有内容复制到另一个文件夹,个人常用收录...

    1.将一个文件夹下的所有内容复制到另一个文件夹下 cp -r /home/packageA/* /home/cp/packageB/ 或 cp -r /home/packageA/. /home/cp ...

  2. 批量上传相册,将一个文件夹下的所有图片,复制到另一个文件夹,仅给出文件夹目录

    package cn.hp.demo01;import java.io.*;/* * 批量上传相册 *将一个文件夹下的所有图片,复制到另一个文件夹 *仅给出文件夹目录*/ public class D ...

  3. python将一个文件夹下图片按比例分在两个文件夹下

    #!/usr/bin/env python # -*- coding:utf-8 -*- # 将一个文件夹下图片按比例分在两个文件夹下,比例改0.7这个值即可 import os import ran ...

  4. 在当前文件夹下创建以日期和时间命名的文件夹

    工作中经常要用到在当前文件夹下创建以日期加时间命名的文件夹,手动太过麻烦,于是写了个脚本, windows下直接用bat @echo off ::获取日期 将格式设置为:20150410 set da ...

  5. linux 把一个文件夹重命名后,移动到另外一个文件夹下

    linux 把一个文件夹重命名后,移动到另外一个文件夹下 mv /ssd1/AAA/PBMC_rat/RAT/index /ssd1/zhihengfeng/PBMC_rat/star

  6. Python批量转换文件夹下图片为PDF

    前言 最近遇到需要批量把图片转换成pdf的需求,要求转换之后输出到对应的转化目录下,由于需要转换的图片文件非常多,这就萌生了想要写个小程序的想法. 实现思路: (1)先弹窗选择对应的文件夹路径 (2) ...

  7. 合并文件夹下多个PDF,PDF转图片,图片转PDF,JPG转pdf,pdf转JPG

    可以实现任意选定页面的合并.通过文件夹遍历,可以将不同文件夹下的PDF按选定的页面合并在一起,方便实用,简单易学. 在日常生活中,我们时常需要批量保存并合并文件.在网上我们可以搜到很多PDF合并软件, ...

  8. php文件夹下所有视频播放,PHP使用glob方法遍历文件夹下所有文件

    遍历文件夹下所有文件,一般可以使用opendir 与 readdir 方法来遍历. 代码: $path = dirname(__FILE__); // __FILE__文件的完整路径和文件名. // ...

  9. Windows下将文件夹下所有的文件名导出成生成TXT文件

    1.在桌面上新建一个txt文件,然后复制下面代码,写入txt文件 @echo off dir /s/b *.* > b.txt exit (这里的b.txt文件就是用来存放目标文件名称的txt文 ...

最新文章

  1. 硬货 | 一文解读完五篇重磅ACL2017 NLP论文
  2. feign session 调用_springboot使用feign调用session传递失效解决方案
  3. arcalet云服务平台支持Unity3D开发实时多人联机游戏
  4. 电动力学每日一题 2021/10/14
  5. KVM虚拟化的简单概论
  6. 可视化Java 9模块关系
  7. git 报错:was cached in the local repository, resolution will not be reattempted until the upda
  8. MySQL—赋权(grant)和回收权限(revoke)
  9. 研究百度下拉360下拉搜狗下拉神马下拉头条下拉抖音下拉的优化算法(合集帖)
  10. Java出现No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing
  11. 技术交流群和CSDN免费下载服务
  12. 初级程序员面试经典题目(大串烧 含答案)
  13. lol2.27服务器维护,lol2月27日维护公告
  14. 量化评价和质化评价举例_数据质量量化评价研究与实现
  15. 2021-05-07:set,hashmap,collisions, map 242 1 15 18
  16. 边缘计算七大核心技术
  17. 基于Python的招聘推荐与薪资预测系统的设计与实现
  18. Springboot导出excel,合并单元格示例
  19. c++最佳情侣身高差(来测一测)
  20. 网络多媒体素材加工【1】

热门文章

  1. 最适合孩子入门的十大编程语言
  2. 购物车系列——购物车模块
  3. 贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析免疫球蛋白、前列腺癌数据...
  4. list, vector, map, set 区别与用法比较
  5. vue3 实现Excel下载模板
  6. C语言(十八)_Bool变量
  7. networkx画有向图和无向图
  8. 沃飞长空公共安全无人机,助力建设“空天地”一体化水文监测体系
  9. Spring-Boot-全栈开发:漂亮的邮件注册
  10. JS节点操作(2)- 创建节点,添加节点,删除节点,复制节点