PDF Reader

最全总结!聊聊 Python 操作PDF的几种方法

爷,独闯天下 提交于 2020-10-25 06:47:11
作者 | 陈熹 来源 | 早起Python 前言 本文主要涉及: os 模块综合应用 glob 模块综合应用 PyPDF2 模块操作 基本操作 PyPDF2 导入模块的代码常常是: from PyPDF2 import PdfFileReader, PdfFileWriter 这里导入了两个方法: PdfFileReader 可以理解为读取器 PdfFileWriter可以理解为写入器 接下来通过几个案例进一步认识这两个工具的奇妙之处,用到的示例文件是5个发票的pdf 每个发票的PDF都由两页组成: 合并 第一个工作是将5个发票pdf合并成10页。这里读取器和写入器应该怎么配合呢? 逻辑如下: 读取器将所有pdf读取一遍 读取器将读取的内容交给写入器 写入器统一输出到一个新pdf 这里还有一个重要的知识点:读取器只能将读取的内容一页一页交给写入器。 因此,逻辑中第1步和第2步实际上不是彼此独立的步骤,而是读取器读取完一个pdf后,就将这个pdf全部页循环一遍,挨页交给写入器。最后等读取工作全部结束后再输出。 看一下代码可以让思路更清楚: from PyPDF2 import PdfFileReader, PdfFileWriterpath = r'C:\Users\xxxxxx'pdf_writer = PdfFileWriter()for i in range(1, 6):

java中根据模板生成pdf文件

筅森魡賤 提交于 2020-08-05 04:21:10
简介 本文使用java引入apache提供的pdf操作工具生成pdf文件,主要是根据需求开发了一个util类,记录一下学习和开发过程。 业务需求 因为业务需要,对于不同的用户要生成一个不同的pdf文件,记录了保险用户的疾病信息和结算信息等,根据pdf模板,从数据库中获取用户的基本和结算信息,然后生成该用户的结算文件。 根据这个需求,写了一个工具类,主要功能就是根据模板生成pdf文件,并保存到服务器指定位置。 引入jar包 pdfBox是apache提供的免费,开源的pdf操作工具,这个jar里面囊括了所有的pdfbox操作工具类,导入这一个就够了 ,使用起来很方便。 这里使用maven引入jar包: <!-- https: // mvnrepository.com/artifact/org.apache.pdfbox/pdfbox --> <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.13</version> </dependency> pdf模板文件与方法参数 工具类有两个必须的元素:pdf模板文件和从数据库中抽出的数据。 pdf模板文件放在指定的路径,下图为部分pdf模板文件: 模板文件可以有多张,这里只截取一张当做参考。 入参和返回值

实战从零搭建单域多站点MDT部署系统-上季 视频课程上线

旧巷老猫 提交于 2020-05-01 17:22:01
实战从零搭建单域多站点MDT部署系统-上季 视频课程上线 ©Lander Zhang 专注外企按需IT运维服务,IT Helpdesk 实战培训践行者 博客: https://blog.51cto.com/lander IT Helpdesk 工程师实战培训课程: https://edu.51cto.com/lecturer/733218.html 轻松进外企:IT Helpdesk工程师实战自学之路: https://blog.51cto.com/lander/2413018 更新时间:2020/04/20 说明 微软于2020 年1月14日停止对Windows 7的支持,实际上自2015年起就有外企客户开始从Windows 7升级到Windows 10了。对于这些企业来说,都有整体解决方案得以让整个项目按规划顺利完成。目前国内企业也在开始批量升级了。基于此,很多同学咨询是否有微软免费但同样功能强劲的解决方案来实现单域多站点的客户端操作系统部署,于是就有了这个系列。 课程目标 掌握在企业环境下搭建MDT客户端电脑批量部署系统。 课程链接 《实战从零搭建单域多站点MDT部署系统》: https://edu.51cto.com/course/22998.html 。 课程简介 MDT是微软原生的免费批量系统部署工具集,使用该工具集可以实现企业单域多站点批量部署客户端电脑系统

【Java】itext根据模板生成pdf(包括图片和表格)

≡放荡痞女 提交于 2020-04-30 13:03:06
1、导入需要的jar包:itext-asian-5.2.0.jar itextpdf-5.5.11.jar。 2、新建word文档,创建模板,将文件另存为pdf,并用Adobe Acrobat DC打开编辑,点击右侧【准备表单】后点击【开始】 3、在需要插入数据的空白处,右击,点击【文本域】,将文本域拖放到你想要的位置,更改域名称为你传入的变量名。 4、保存文件,将文件放到项目中。生成pdf代码如下: 1 public static void creatPdf(Map<String, Object> map,String filePath) { 2 try { 3 BaseFont bf = BaseFont.createFont("c://windows//fonts//simsun.ttc,1" , BaseFont.IDENTITY_H, 4 BaseFont.EMBEDDED); 5 FileOutputStream out = new FileOutputStream(filePath); // 输出流 6 PdfReader reader = new PdfReader(TemplateToWord. class .getResource("/com/cn/business/templates/report.pdf")); // 读取pdf模板 7

java -PDF添加文本水印与图片水印

六眼飞鱼酱① 提交于 2020-04-28 07:42:08
java pdf添加水印文本及图片文本 PDF文件添加文本水印 : private static int interval = 30 ; public static void waterMark(String inputFile,String outputFile, String waterMarkName) { try { PdfReader reader = new PdfReader(inputFile); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(outputFile)); // 这里的字体设置比较关键,这个设置支持中文的写法 BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.EMBEDDED); // 使用系统字体 Rectangle pageRect = null ; PdfGState gs = new PdfGState(); // 设置透明度 gs.setFillOpacity(0.3f ); gs.setStrokeOpacity( 0.3f ); int total = reader.getNumberOfPages() + 1 ; JLabel label = new

Android自动化测试--monkey总结

人走茶凉 提交于 2020-04-24 22:50:58
什么是 Monkey   Monkey 是一个 Android 自动化测试小工具。主要用于Android 的压力测试, 主要目的就是为了测试app 是否会Crash. Monkey 特点   顾名思义,Monkey就是猴子, Monkey测试,就像一只猴子, 在电脑面前,乱敲键盘在测试。 猴子什么都不懂, 只知道乱敲。通过Monkey程序模拟用户触摸屏幕、滑动Trackball、 按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。 Monkey程序介绍   Monkey 程序是由 Android 系统自带,使用 Java 语言写成。在Android文件系统中的存放路径是: /system/framework/monkey.jar;   Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中 的存放路径是:/system/bin/monkey;   Monkey 启动方式:在 cmd 命令提示符里面输入命令行来启动 monkey 测试。 一、Monkey简介: Monkey是Android中的一个命令行工具,可以运行在模拟器里或者现实设备中,向系统发送伪随机的用户事件流(点击、滑动、Application切换、横竖屏、应用关闭)实现对正在开发的应用程序进行压力测试

wkhtmltopdf+itext实现html生成pdf文件的打印下载(适用于linux及windows)

江枫思渺然 提交于 2020-04-22 05:07:06
目中遇到个根据html转Java的功能,在java中我们itext可以快速的实现pdf打印下载的功能,在itext中我们一般有以下三中方式实现 配置pdf模板,通过Adobe Acrobat 来设置域最后通过代码将数据填充进去 通过FreeMarker或thymeleaf配置html模板填充数据 Jsoup +XMLWorkerHelper对于上述的三种方式,我简述下我的体验:第一种方式对于入门简单,如果我们需求中的pdf文件是表格或者报表的样式还是很好实现的,但如果遇到要求和html样式一致的话就基本歇菜了。第二张方式比较理想,在项目基本完工的情况下再去改成模板不太现实,而且我只是个做后端的还没那么大的能耐,不选。第三种方式我也尝试了下,对于一些简单网页比如说博客,我们通过Jsoup可以获取到文章的内容和html样式,网上的demo也是通过博客来举例的,效果不错,但我看了下博客内容的基本样式就是一些基本的div、p、li这些标签,但在我实际的项目中样式比较复杂,生成的pdf无法打开。而且 上面的三种方式都有一个致命的缺点:那就是需要去针对模板。现实的项目中我们可能多个地方需要实现pdf打印的功能,样式模板的配置将占用很大的开发工作量。第三种方式虽说不需要模板,但通过网页的标签去获取数据也会变得多样化,完全不能实现方法的复用。 当然,itext也不是一无是处

Itext 使用

≯℡__Kan透↙ 提交于 2020-04-06 10:25:16
一、Itext简介 1、API地址:javadoc/index.html 如 D:/MyJAR/原JAR包/PDF/itext-5.5.3/itextpdf-5.5.3-javadoc/index.html 2、功能:a Free Java-PDF 3、中文支持:iTextAsian.jar,现在高版本Itext不支持语言包。 4、使用的版本:iTextpdf-5.0.0.jar, iTextAsian-2.0.jar 二、Itext API (一)PDF文档生成的5步 /** * 5步生成一个PDF */ public void createPdf() throws Exception { // 1-创建文本对象 Document Document document = new Document(PageSize.A4, 500, 150, 50, 50); // 2-初始化 pdf输出对象 PdfWriter PdfWriter.getInstance(document, out); // 3-打开 Document document.open(); // 4-往 Document 添加内容 document.add(new Paragraph("Hello! PDF!!!")); // 5-关闭 Document document.close(); } </span> (二

IE 直接打印 页面的方式

拟墨画扇 提交于 2019-11-29 08:18:51
本文转载于: 猿2048 网站➧ IE 直接打印 页面的方式 1、 通过在IE中加载adobe pdf reader 插件 进行直接打印和打印的配置 (推荐) <body> <object id="pdf1" width="1000px" height="400px" classid="clsid:CA8A9780-280D-11CF-A24D-444553540000"> <param name="src" value="../xdoc/testDoc.do"> </object> <script language="JavaScript"> pdf1.SetShowToolbar (false); </script> <input type="button" value="打印" onclick="pdf1.printAll()"> <input type="button" value="打印(带对话框)" onclick="pdf1.printWithDialog()"> </body> 2、通过 smsx.cab 打印控件进行直接打印 <object id="factory" style="display:none" classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" codebase="smsx.cab#Version