如何用Python实现doc文件批量转换为docx

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用Python实现doc文件批量转换为docx相关的知识,希望对你有一定的参考价值。

有一批PDF文件,好几百个,每个只打印第2,3页,双面打印。
网上搜索一波,方案如下:
安装Ghostscript,GhostView,使用gsprint命令打印pdf文件。
gsprint命令参数说明:
"-dQUIET", 安静的意思,指代执行过程中尽可能少的输出日志等信息。(也可以简写为“-q”)
"-dNOSAFER", 通过命令行运行
"-dBATCH", 执行到最后一页后退出
"-dNOPAUSE", 每一页转换之间没有停顿
"-dNOPROMPT", 没有相关提示
"-dFirstPage=1", 从第几页开始
"-dLastPage=5", 到第几页结束
"-sDEVICE=pngalpha", 转换输出的文件类型装置,默认值为x11alpha
"-g720x1280", 图片像素(-gx),一般不指定,使用默认输出
"-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 -*-
importosimporttimedefprint_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 infl:if 'pdf' inf.lower():
print_pdf(f, i)
参考技术A 用pywin32不过调用的也是封装VBA的一些接口 就是用Python 字符串的操作舒服点(VB语法蛋疼)

在 AWS Lambda 上使用 Python 将 MS Word(.doc 和 .docx)文件转换为 HTML

【中文标题】在 AWS Lambda 上使用 Python 将 MS Word(.doc 和 .docx)文件转换为 HTML【英文标题】:Convert MS Word (.doc and .docx) file to HTML using Python on AWS Lambda 【发布时间】:2016-11-29 16:47:48 【问题描述】:

尝试在 AWS Lambda 上使用 Python 将 MS Word 文件转换为 HTML。对于 .docx,我知道有一个名为 python-docx 的库。但是当谈到 .doc 时,我仍然找不到一个优雅而简单的解决方案,因为大多数可能的解决方案都是使用 LibreOffice 或 OpenOffice。

有没有办法制作一个可移植版本的 LibreOffice/OpenOffice,可以通过 AWS Lambda 上的 Python 脚本进行操作?或者,是否有我省略的 .doc 文件的 Python 库?

【问题讨论】:

您找到解决方案了吗?如果是这样,请分享您的经验。我还想在 Lambda 中使用 LibreOffice/OpenOffice 的一些功能。基本上我想将 .doc 文件转换为 .pdf。 【参考方案1】:

如果您正在寻找在 AWS Lambda 中运行的 LibreOffice,这可能会对您有所帮助。最近我设法创建了一个在 Lambda 中运行的便携式版本。

https://github.com/vladgolubev/serverless-libreoffice

【讨论】:

【参考方案2】:

不幸的是,目前似乎没有优雅的解决方案来解决这个问题。我曾尝试制作 LibreOffice/OpenOffice 的便携版本,但最大的问题是大小,超出了 AWS Lambda 的限制。

也许您想尝试一下 Pandoc,尽管它无法处理 .doc 文件。但我在 AWS Lambda 上成功使用了它。您可以访问here 了解如何为 AWS Lambda 制作便携式版本。

【讨论】:

以上是关于如何用Python实现doc文件批量转换为docx的主要内容,如果未能解决你的问题,请参考以下文章

用python实现批量替换.doc文件文件内容

如何将*.doc批量转换成*.docx

如何把doc批量转化为docx?

如何用纯java代码实现word转pdf?

python合并word

如何用纯java代码实现word转pdf