python数学公式pdf文件的转换_python转换文件 多种文件转换为pdf

1.office文件

这里用的是win32com, 需要注意已经安装的python版本是32位还是64位。

安装后导入

from win32com.client import Dispatch, constants, gencache, DispatchEx

(1) word转PDF

gencache.EnsureModule('{00020905-0000-0000-C000-000000000046}', 0, 8, 4)

w = DispatchEx("Word.Application")

doc = w.Documents.Open(docFile, ReadOnly=1)

doc.ExportAsFixedFormat(targetFile, constants.wdExportFormatPDF,

Item=constants.wdExportDocumentWithMarkup,

CreateBookmarks=constants.wdExportCreateHeadingBookmarks)

w.Quit(constants.wdDoNotSaveChanges)

(2) excel转PDF

xlApp = DispatchEx("Excel.Application")

xlApp.Visible = False #进程可见,False是它暗自进行

xlApp.DisplayAlerts = 0 #不跳出来。

books = xlApp.Workbooks.Open(excelFile,False)

books.ExportAsFixedFormat(0, targetFile)

books.Close(False)

xlApp.Quit()

(3) ppt转PDF

gencache.EnsureModule('{00020905-0000-0000-C000-000000000046}', 0, 8, 4)

p = Dispatch("PowerPoint.Application")

ppt = p.Presentations.Open(pptFile, False, False, False)

ppt.ExportAsFixedFormat(targetFile, 2, PrintRange=None)

p.Quit()

2. 图片文件

需要安装PIL 和 reportlab

安装完导入

from PIL import Image

from reportlab.lib.pagesizes import A4, landscape

from reportlab.pdfgen import canvas

图片转PDF

(w, h) = landscape(A4)

c = canvas.Canvas(self.getPdfName(fileName), pagesize = landscape(A4))

(xsize, ysize) = Image.open(fileName).size

ratx = xsize / w

raty = ysize / h

ratxy = xsize / (1.0 * ysize)

if ratx > 1:

ratx = 0.99

if raty > 1:

raty = 0.99

rat = ratx

if ratx < raty:

rat = raty

widthx = w * rat

widthy = h * rat

widthx = widthy * ratxy

posx = (w - widthx) / 2

if posx < 0:

posx = 0

posy = (h - widthy) / 2

if posy < 0:

posy = 0

c.drawImage(fileName, posx, posy, widthx, widthy)

c.showPage()

c.save()

3. html文件

需要安装pdfkit

安装后导入

import pdfkit

html转PDF

options={

'page-size':'Letter',

'margin-top':'0.75in',

'margin-right':'0.75in',

'margin-bottom':'0.75in',

'margin-left':'0.75in',

'encoding':"UTF-8",

'no-outline':None

}

pdfkit.from_file(htmlFile, targetFile, options)

需要注意的是:pdfkit需要和wkhtmltopdf配合使用。

安装后需要配置环境变量,将wkhtmltopdf.exe所在目录加上path中。

4. 文本文件

能用记事本等打开的文本文件,如txt文件,也可以用pdfkit工具来转换成pdf文件。

需要注意的是:

(1) 对于其它格式的文件,可以保存为txt文件之后再转换,因为有些不能被识别。

(2) 对于较大的文本文件,可以切割成多个文件,分别转换后,再把生成的多个pdf文件合并成一个pdf文件。

合并pdf文件可以用PyPDF2

安装后导入

from PyPDF2.pdf import PdfFileWriter, PdfFileReader

合并

pdf_output = PdfFileWriter()

files = []

for pdf in pdfList:

f = open(pdf, 'rb')

files.append(f)

pdf_input = PdfFileReader(f)

# 获取 pdf 共用多少页

page_count = pdf_input.getNumPages()

for i in range(page_count):

pdf_output.addPage(pdf_input.getPage(i))

pdf_output.write(open(targetFile, 'wb'))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489118.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

rust矿洞绳子怎么爬下_rust矿洞绳子怎么爬下_打工小伙爬冰救人,每动一下都能听到冰面碎裂声...

近日&#xff0c;在辽宁沈阳鲁迅公园&#xff0c;一男子掉进湖中冰窟窿&#xff0c;露出脑袋不停地呼救。生死时刻&#xff0c;一位正在附近找零活的小伙&#xff0c;不顾冰面碎裂发出的咔咔声&#xff0c;一步步爬冰救人&#xff0c;最终在岸上众人帮助下&#xff0c;成功救出…

Python爬虫入门四之Urllib库的高级用法

1.设置Headers 有些网站不会同意程序直接用上面的方式进行访问&#xff0c;如果识别有问题&#xff0c;那么站点根本不会响应&#xff0c;所以为了完全模拟浏览器的工作&#xff0c;我们需要设置一些Headers 的属性。 首先&#xff0c;打开我们的浏览器&#xff0c;调试浏览器F…

Magic Leap 价值 20 多亿美元的 AR 幻梦,现在醒了

来源&#xff1a;传感器技术那个用特效来吹出 AR 神话的 Magic Leap&#xff0c;终于有了新动静。 当地时间 12 月 10 日&#xff0c;增强现实&#xff08;AR&#xff09;领域的“知名”公司 Magic Leap 宣布&#xff0c;将 Magic Leap One Creator Edition 改名为 Magic Leap …

mysql约束_不是吧,阿Sir,MySQL约束你竟然还不懂!

以前写的太乱了&#xff0c;翻出来重新整理下系列目录&#xff1a;MySQL入门&#xff0c;问题不大【增删改查极速上手】(一) 引入约束(1) 约束出现在哪里&#xff1f; 想要讲解约束&#xff0c;就要知道约束用在哪里&#xff0c;用来干嘛&#xff1f;SQL 语言通过定义一个关系所…

dc持久内存与mysql_Calypso Systems推出测试软件和服务器测试傲腾数据中心级持久内存...

Calypso Systems测试Optane DCPMM(DC Persistent Memory Module 数据中心级持久性内存模块)的性能&#xff0c;带宽超过36500MB/s(顺序读写速度128000MB/s)&#xff0c;每秒读写速度为3240万IOPS(顺序读取速度5000)&#xff0c;平均响应时间达到0.11微秒。Calypso PM(持久性内存…

计算机行业研究及2020年策略:聚焦主赛道,投资真成长(84页)

来源&#xff1a;国元证券1、行业涨幅位居前列&#xff0c;个股表现精彩纷呈……2、IT 产业大变革&#xff0c;新机遇不断涌现近年来&#xff0c;以 5G、物联网、云计算、大数据、人工智能、区块链等技术为代表的信息 科技行业快速发展&#xff0c;新兴技术不断涌现&#xff0c…

最长回文串_第78天——第78题(最长回文串 )

今天又是阴天&#xff0c;不过阴天凉快&#xff0c;我喜欢。第78天——第78题&#xff08;最长回文串&#xff09;看题目&#xff01;给定一个包含大写字母和小写字母的字符串&#xff0c;找到通过这些字母构造成的最长的回文串。在构造过程中&#xff0c;请注意区分大小写。比…

python是后端语言还是前端语言_从前端到后台-语言选择

截止至2019年10月&#xff0c;TIOBE编程语言排行如图所示这里重点考虑前三种语言和JS。C作为底层语言直接忽略&#xff0c;主要对JAVA&#xff0c;Python和JS进行对比。JAVA: 强类型静态语言&#xff0c;入门较Python难度更大&#xff0c;常用于企业级应用。如金融&#xff0c;…

二进制权值计算 lsb_2020年二级计算机基础知识备考(第二章)

点击蓝字关注我们哟~2020年9月全国计算机等级考试倒计时29天&#xff0c;还没有好好备考的小伙伴们抓紧时间备考了~今天&#xff0c;跟着考无忧继续备考一下二级计算机基础知识的《第二章 信息的表示和储存》。2.1数据与信息1.数据&#xff1a;客观事物的符号表示&#xff0c;如…

机器人产业这些领域大有可为

来源&#xff1a;中国机器人网前言&#xff1a;机器人产业面临哪些挑战&#xff0c;未来有哪些趋势&#xff1f;当前&#xff0c;世界正迎来新一轮科技革命。传统制造业转型升级释放出巨大的市场潜力&#xff0c;催生高科技机器人的新需求&#xff0c;成为加速产业发展的新动力…

mysql数据库安全机制研究意义_MySQL数据库的安全机制

收稿日期:2001 - 12 - 30   作者简介:李书振(1965 - ) ,男 ,河南人 ,工程师 ,主要研究方向:数据库原理及应用、管理信息系统. 文章编号 :1001 - 9081(2002)06 - 0051 - 03 MySQL 数据库的安全机制 李书振 (武汉大学 信息管理学院 ,湖北 武汉 430072) 摘  要 :MySQL 是一个多…

国产AI全面崛起!盘点11款2019年热门国产AI芯片

来源&#xff1a;芯师爷人工智能的崛起主要得益于算法、数据和计算能力三方面的突破&#xff0c;这三方面的能力展现离不开AI芯片。由此&#xff0c;AI芯片的研发制造成了人工智能技术发展过程中的关键环节。不同于其它传统芯片&#xff0c;AI芯片是近年新兴产品&#xff0c;拥…

python中set函数作用如何自己用代码实现_Python进阶开发之元类编程

Photo byJoyous From Lofter本文目录类是如何产生的如何使用type创建类理解什么是元类使用元类的意义元类实战&#xff1a;ORM.1. 类是如何产生的类是如何产生&#xff1f;这个问题肯定很傻。实则不然&#xff0c;很多人只知道使用继承的表面形式来创建一个类&#xff0c;却不知…

《构建之法》 读书笔记(4)

敏捷流程 敏捷开发原则.尽早并持续地交付有价值的软件以满足顾客需求。敏捷流程欢迎需求的变化&#xff0c;并利用这种变化来提高用户的竞争优势。.经常发布可用的软件&#xff0c;发布间隔可以从几周到几个月&#xff0c;能短则短。.业务人员和开发人员在项目开发过程中应该每…

【周末阅读】10年内,19个关键技术将改变世界

来源&#xff1a;人民网 中国AI协会【导读】根据世界经济论坛全球议程理事会关于《未来软件与社会》的一份报告&#xff0c;到2025年前&#xff0c;很多新兴技术将会达到其临界点。该理事会调查走访了超过800名来自技术行业的企业高管和专家&#xff0c;并分享了他们关于这些黑…

linux mysql安装_LINUX 安装 MYSQL

安装成功的样子&#xff1a;[[email protected] mysql]# mysql -u root -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 18130Server version: 8.0.19 MySQL Community Server - GPLCopyright (c) 2000, 2020, Oracle…

上传文件实时显示网速怎么实现_担心PC程序吃内存占网速?有了它终于放心了...

自乔帮主发布iPhone至今&#xff0c;智能手机已经走过了13个年头&#xff0c;其系统、UI、操作逻辑都已经逐步完善且相当傻瓜化。所以总有许多人切换到PC上时&#xff0c;总感觉缺了那么点东西&#xff0c;Windows系统的生产力自然是毋庸置疑&#xff0c;但其繁琐、复杂且不直观…

Jmeter生成html格式测试报告

使用jmeter进行性能测试&#xff0c;运行完毕后生成html格式的测试报告&#xff0c;需要进行如下操作&#xff1a; 1.在C:\apache-jmeter-3.0\bin文件夹下的user.properties文本中添加如下信息&#xff1a; jmeter.save.saveservice.assertion_results_failure_messagetrue jme…

python字符串怎么用_零基础如何使用python处理字符串?

摘要&#xff1a;Python的普遍使用场景是自动化测试、爬取网页数据、科学分析之类&#xff0c;这其中都涉及到了对数据的处理&#xff0c;而数据的表现形式很多&#xff0c;今天我们来讲讲字符串的操作。字符串是作为任意一门编程语言的基础&#xff0c;在Python中的关键字叫做…

iOS NSString 与NSData转化

1. 字符串转Data NSString * str "str"; NSData *data [str dataUsingEncoding:NSUTF8StringEncoding]; 2.NSData 转NSString NSString * str [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 3.data 转char NSData *data; char * ha…