如何在 Linux 上使用 Python 读取 word 文件信息(如页数)?
阿神
阿神 2017-04-17 13:58:09
[Python讨论组]
阿神
阿神

闭关修行中......

全部回复(2)
巴扎黑

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

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

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

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

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

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

大家讲道理

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号