首页 > 如何在 Linux 上使用 Python 读取 word 文件信息(如页数)?

如何在 Linux 上使用 Python 读取 word 文件信息(如页数)?

R.T.
doc 是二进制文件,Python 如何进行读取呢?
.docx 可用 python-docx 读取,但如何读到 页数 信息呢?
注:在 linux server 上,而不是 windows


file 命令可以读到页数的,比如:

xxx.doc: Composite Document File V2 Document, Little Endian, Os: Windows, Version 5.1, Code page: 936, Author: wen, Template: Normal.dotm, Revision Number: 14, Name of Creating Application: Microsoft Office Word, Total Editing Time: 02:02:00, Create Time/Date: Mon Dec 31 16:47:00 2001, Last Saved Time/Date: Fri May 15 02:01:00 2009, Number of Pages: 41, Number of Words: 4968, Number of Characters: 28324, Security: 0

当然准不准确就另说了。我猜是最后一次保存文件时的页数。


只有原则没有细则,仅供参考。

必须说明:不同于Illustrator、InDesign、CorelDRAW、OpenOffice DRAW、Incscape等工具,Word是流动分页的,文件内容本身并不存储分页结果。具体分页时断在哪里、最后分出多少页,都需要现场渲染所有的图文内容之后才能确定。

(简而言之就是:Word文件中仅包含了一行一行的文本,与页面设置中指定的页面尺寸。Word每次打开文件时都会一行一行“摆放”文本数据,发现一页装不下了自动新开一页。当然真正的Word渲染引擎肯定有更复杂的行为。)

.doc/.docx文件中直接读出页面数量,这本身就是个伪命题。所以千万别在“直接读取页面数量”这个方向上寻求方案——软件开发的技法不好可以改正,但路线错了必死无疑!

你需要调动一套能够真的把Word文件的内容渲染出来的工具(支持二次开发的)。只有把Word文件的所有内容渲染成为可以观看的图形,才能准确得知页面的总数。在Linux上很可能LibreOffice可以吧。而在Windows上就当然是用Word本身了。

注意Word的分页结论是没有保证的。缺少字体、字形不同、软件环境不同等各种原因,都会造成不同电脑上打开同一个Word文件的页数不一致。这一点对服务器也没有例外。得到了页数也只能参考使用,而不要100%信赖。

【热门文章】
【热门文章】