python 批量打印PDF
有一批PDF文件,好几百个,每个只打印第2,3页,双面打印。
网上搜索一波,方案如下:
安装Ghostscript,GhostView,使用gsprint命令打印pdf文件。
gsprint命令参数说明:
"-dQUIET", 安静的意思,指代执行过程中尽可能少的输出日志等信息。(也可以简写为“-q”)
"-dNOSAFER", 通过命令行运行
"-dBATCH", 执行到最后一页后退出
"-dNOPAUSE", 每一页转换之间没有停顿
"-dNOPROMPT", 没有相关提示
"-dFirstPage=1", 从第几页开始
"-dLastPage=5", 到第几页结束
"-sDEVICE=pngalpha", 转换输出的文件类型装置,默认值为x11alpha
"-g720x1280", 图片像素(-g<width>x<height>),一般不指定,使用默认输出
"-r300", 图片分辨率(即图片解析度为300dpi),默认值好像是72(未测试证实)
"-sOutputFile=/opt/shanhy/error1png/%d.png", 图片输出路径,使用%d或%ld输出页数
比如打印c.pdf第2,3页,命令如下
gsprint -dFirstPage=2 -dLastPage=3 c.pdf
大部分pdf只打印第2,第3页,双面打印,所以用python控制批量打印所有pdf的第二页,暂停,提示翻页,然后批量打印第三页。
完整代码如下
# -*- coding: utf-8 -*-
import os
import time def print_pdf(pdf_file_name, page):
"""
静默打印pdf
:param pdf_file_name
:page 打印第几页
:return:
"""
cmd = 'gsprint -dFirstPage=%s -dLastPage=%s %s' % (page, page, pdf_file_name)
print(cmd)
p = os.popen(cmd)
time.sleep(3)
print(p.read()) if __name__ == '__main__':
curr_path = os.getcwd()
fl = os.listdir(curr_path)
for i in range(2,4):
print(i)
for f in fl:
if 'pdf' in f.lower():
print_pdf(f, i)
a = raw_input('请翻转打印纸')
ghostscript下载地址:
https://www.ghostscript.com/download.html
ghostview下载地址:
http://www.onlinedown.net/soft/6218.htm
python 批量打印PDF的更多相关文章
- C#调用Python脚本打印pdf文件
介绍:通过pdf地址先将文件下载到本地,然后调用打印机打印,最后将下载的文件删除. 环境:windows系统.(windows64位) windows系统中安装python3.6.2环境 资料: O ...
- 使用Python批量合并PDF文件(带书签功能)
网上找了几个合并pdf的软件,发现不是很好用,一般都没有添加书签的功能. 又去找了下python合并pdf的脚本,发现也没有添加书签的功能的. 于是自己动手编写了一个小工具,使用了PyPDF2. 下面 ...
- Python代码教你批量将PDF转为Word
很多时候在学习时发现许多文档都是PDF格式,PDF格式却不利于学习使用,因此需要将PDF转换为Word文件,但或许你从网上下载了很多软件,但只能转换前五页(如WPS等),要不就是需要收费,那有没有免费 ...
- vue项目中使用Lodop实现批量打印html页面和pdf文件
1.Lodop是什么? Lodop(标音:劳道谱,俗称:露肚皮)是专业WEB控件,用它既可裁剪输出页面内容,又可用程序代码直接实现复杂打印.控件功能强大,却简单易用,所有调用如同JavaScript扩 ...
- winfrom 实现条形码批量打印以及将条形码信息生成PDF文件
最近,老大让给客户做个邮包管理程序.其中,包括一些基本信息的增.删.查和改,这些倒不是很难搞定它分分钟的事.其主要难点就在于如何生成条形码.如何批量打印条形码以及将界面条形码信息批量生成以其各自的 b ...
- 将python代码打印成pdf
将python代码打印成pdf,打印出来很丑,完全不能看. mac下:pycharm 编辑器有print的功能,但是会提示: Error: No print service found. 所以需要一个 ...
- 个人永久性免费-Excel催化剂功能第50波-批量打印、导出PDF、双面打印功能
在倡导无纸化办公的今天,是否打印是一个碍眼的功能呢,某些时候的确是,但对于数据的留存,在现在鼓吹区块链技术的今天,仍然不失它的核心价值,数据报表.单据打印出来留存,仍然是一种不可或缺的数据存档和防篡改 ...
- Python将word文档批量转PDF
前面有一篇<Python批量创建word文档(2)- 加图片和表格>的文章,利用这篇文章创建的word文档来批量转PDF文档.代码: 1 ''' 2 #python批量将word文档转换成 ...
- C#使用iTextSharp+ZXing.Net+FreeSpire.PDF生成和打印pdf文档
项目需求(Winform)可以批量打印某个模板,经过百度和摸索,使用iTextSharp+ZXing.Net+FreeSpire.PDF三个类库实现了生成pdf.生成条形码和打印pdf功能. 首先在项 ...
随机推荐
- 带小伙伴手写 golang context
前言 - context 源码 可以先了解官方 context.go 轮廓. 这里捎带保存一份当前 context 版本备份. // Copyright 2014 The Go Authors. Al ...
- stompjs, websocket和nginx的配置
server { listen 8080; location /socket/ { proxy_pass http://socket_server/; proxy_s ...
- .NET core Quartz 定时任务框架 demo
开始先建个空的web项目. 创建一个新类 QuartzFactory 狠狠的复制就完事了. public class QuartzFactory : IJobFactory { private rea ...
- kubernetes使用securityContext和sysctl
前言 在运行一个容器时,有时候需要使用sysctl修改内核参数,比如net..vm..kernel等,sysctl需要容器拥有超级权限,容器启动时加上--privileged参数即可.那么,在kube ...
- CSP J/S 2019受虐记
一枚蒟蒻的游记~ 提高组DAY1 不是说每场考试都有一道签到题吗 那我tm读了三遍题硬是没找到一道水题是怎么回事(是我太弱了吗) 没办法,硬着头皮做T1 暴力写法...期望得分30pts 于是...在 ...
- Jboss部署SpringBoot2 JPA
Jboss部署SpringBoot2 JPA 目录结构 . └── webapp └── META-INF ├── jboss-deployment-structure.xml └── jboss-w ...
- pandas-11 TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely错误解决方法
pandas-11 TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be sa ...
- ConnectionString属性(网速慢的情况下研究Connect Timeout)
ConnectionString 类似于 OLE DB 连接字符串,但并不相同.与 OLE DB 或 ADO 不同,如果“Persist Security Info”值设置为 false(默认值),则 ...
- AngularJS 插值字符串 $interpolate
定义: $interpolate:编译一段带有嵌入标记的语句,然后返回一个interpolate(插值)函数.使用: $interpolate(text,[mustHaveException],[tr ...
- 【转载】C#中使用double.Parse方法将字符串转换为双精度double类型
在C#编程过程中,很多时候涉及到数据类型的转换,例如将字符串类型的变量转换为双精度浮点类型double就是一个常见的类型转换操作,double.Parse方法是C#中专门用来将字符串转换为double ...