R.T.doc是二进制文件,Python如何进行读取呢?.docx可用python-docx读取,但如何读到页数信息呢?注:在linuxserver上,而不是windows
2 回答
慕无忌1623718
TA贡献1744条经验 获得超4个赞
只有原则没有细则,仅供参考。必须说明:不同于Illustrator、InDesign、CorelDRAW、OpenOfficeDRAW、Incscape等工具,Word是流动分页的,文件内容本身并不存储分页结果。具体分页时断在哪里、最后分出多少页,都需要现场渲染所有的图文内容之后才能确定。(简而言之就是:Word文件中仅包含了一行一行的文本,与页面设置中指定的页面尺寸。Word每次打开文件时都会一行一行“摆放”文本数据,发现一页装不下了自动新开一页。当然真正的Word渲染引擎肯定有更复杂的行为。)从.doc/.docx文件中直接读出页面数量,这本身就是个伪命题。所以千万别在“直接读取页面数量”这个方向上寻求方案——软件开发的技法不好可以改正,但路线错了必死无疑!你需要调动一套能够真的把Word文件的内容渲染出来的工具(支持二次开发的)。只有把Word文件的所有内容渲染成为可以观看的图形,才能准确得知页面的总数。在Linux上很可能LibreOffice可以吧。而在Windows上就当然是用Word本身了。注意Word的分页结论是没有保证的。缺少字体、字形不同、软件环境不同等各种原因,都会造成不同电脑上打开同一个Word文件的页数不一致。这一点对服务器也没有例外。得到了页数也只能参考使用,而不要100%信赖。
青春有我
TA贡献1784条经验 获得超8个赞
file命令可以读到页数的,比如:xxx.doc:CompositeDocumentFileV2Document,LittleEndian,Os:Windows,Version5.1,Codepage:936,Author:wen,Template:Normal.dotm,RevisionNumber:14,NameofCreatingApplication:MicrosoftOfficeWord,TotalEditingTime:02:02:00,CreateTime/Date:MonDec3116:47:002001,LastSavedTime/Date:FriMay1502:01:002009,NumberofPages:41,NumberofWords:4968,NumberofCharacters:28324,Security:0当然准不准确就另说了。我猜是最后一次保存文件时的页数。
添加回答
举报
0/150
提交
取消
