使用Python的word文档的页数(Number of pages of a word document with Python)
有没有办法用Python有效地获得word文档(.doc,.docx)的页数?
对于.odt文件?
我想将它用于基于Linux上的Web2py的Web应用程序。
谢谢 !
Is there a way to get efficiently the number of pages of a word document (.doc, .docx) with Python ?
And for an .odt file ?
I want to use this for a web application based on Web2py on Linux.
Thank you !
原文:https://stackoverflow.com/questions/12964580
2019-10-23 16:10
满意答案
你可以读取值
CountValue
来自docx包中的docProps / app.xml或
在odt包中形成meta.xml。
如果这些值不存在(它们是可选的),你必须计算整个文档,实际上执行渲染,这要困难得多
You can read the value
CountValue
from docProps/app.xml in the docx package or
form meta.xml in odt package.
If these values do not exist (they are optional), you have to make a calculation of the entire document, in fact perform rendering, that much more difficult
2012-10-19
相关问答
有几种方法可以使用Python创建Word文档: 使用COM自动化使用MS Word对象模型(使用pywin32 )创建文档。 http://python.net/crew/pirx/spam7/ 使用Python自动化OpenOffice: http : //wiki.services.openoffice.org/wiki/Python 如果rtf格式正常,请使用PyRTF库: http ://pyrtf.sourceforge.net/ 编辑: 由于COM不可能,所以我提出以下建议(受@ k...
尝试之后,我设法将脚本记录到Python(使用Pywin32 )。 这导致下面的代码 from argparse import ArgumentParser, SUPPRESS, HelpFormatter
import datetime
from glob import glob
import os
import re
import subprocess
import sys
import win32com.client as win32
from win32com.client import ...
唯一似乎缺少的是在fout的open语句中encoding='utf-8' 。 with open('TemplateMaster2.txt', 'r', encoding='utf-8') as fin, open('OnlyFastaseq.fasta', 'w', encoding='utf-8') as fout:
for line in fin:
if line.startswith('>'):
fout.write(line)
...
这应该工作: subprocess.Popen(["C:\\Program Files\Microsoft Office\Office12\winword.exe", "P:\\docs\\daily checks.doc", "/mFilePrintDefault", "/mFileExit"]).communicate()
或者, subprocess.Popen("'C:\\Program Files\Microsoft Office\Office12\winword.exe' 'P:\\...
没有Word窗口打开,这是行不通的。 COM是RPC(远程过程调用)之上的一个层。 因此,它只是在PHP和另一个应用程序之间来回发送消息的方法(在您的情况下为Word)。 为了实现这种通信,显然需要打开Word。 它不能作为服务在后台运行,因此它会打开一个窗口。 调用$word->Documents->Open($filename ); 就像单击File -> Open -> "somefile.doc" 。 我希望您也了解您发送消息的Word应用程序实例在服务器上运行,而不是在客户端上运行。 T...
在Word VBA中,您可以通过以下方式检查页数: ? ActiveDocument.Range.Information(wdNumberOfPagesInDocument)
要么 ? ActiveDocument.Content.Information(wdNumberOfPagesInDocument)
我不知道如何将它放在C ++语法中,但希望你可以自己解决它。 I as able to put a piece of code together to get what I wanted....
我认为你发现最有用的方法是在模板文档中定义段落样式 ,它们体现了你想要的不同类型段落(标题,正文段落等)的段落和字符格式,然后应用正确的样式在添加它时添加到每个段落。 http://python-docx.readthedocs.io/en/latest/user/styles-understanding.html http://python-docx.readthedocs.io/en/latest/user/styles-using.html 您仍然需要将文档从“顶部”写入“底部”。 如果项目...
您可以使用Document.getPageCount方法获取Aspose.Words for Java中doc / docx文件的页数。 以下是示例代码: //Open the Word Document
Document doc = new Document("C:\\Data\\Image2.doc");
//Get page count ...
不是渲染实际页面。 页数取决于许多因素,例如所用字体的大小,页面上所有四个方向的边距以及任何其他大小的工件(如图像)的插入。 因此,您需要做的是将文档呈现在某种类型的RTF库中,并让该库告诉您有多少页面。 Not without rendering the actual page. The number of pages will depend on many things, such as the size of the fonts being used, the margins in all ...
你可以读取值
CountValue
来自docx包中的docProps / app.xml或
在odt包中形成meta.xml。 如果这些值不存在(它们是可选的),你必须计算整个文档,实际上执行渲染,这要困难得多 You can re...
相关文章
解析XML主要用到pytohn自带的XML库,其次还是lxml库 XML结构,先以一个相对简单但功能
...
前面在写lucene入门的时候,例子只能对txt文档建立索引,不能对word,excel,pdf建立索
...
python2和python3的区别,1.性能 Py3.0运行 pystone benchmark的速
...
题目地址:http://oj.leetcode.com/problems/word-break/ 简单
...
abs(x) 说明:abs(x)返回x的绝对值,如果参数是复数,则返回复数的模; 参数x:整
...
原文地址:http://blog.chinaunix.net/uid-25525723-id-3630
...
在python中, 去除了i > 0周围的括号,去除了每个语句句尾的分号,还去除了表示块的花括号。多出
...
弄个可以在线看word文档的链接发现英文名的没问题,但是中文的却不行; 源代码: <%@ p
...
python里的字典就像java里的HashMap,以键值对的方式存在并操作,其特点如下:通过键来存取
...
pro-du-cer n. 1. Someone from a game publisher who
...
最新问答
如果启用了复制处理程序,请确保将其置于其中一个安全角色之后。 我见过人们做的另一件事是在不同的端口上运行admin。 最好在需要auth的页面上使用SSL,这样你就不会发送明确的密码,因此管理和复制将发生在8443上,而常规查询将在8080上发生。 如果您要签署自己的证书,请查看此有用的SO页面: 如何在特定连接上使用不同的证书? I didn't know that /admin was the context for SOLR admin because /admin does not re
第一:在您的样本中,您有: 但是你在询问 //td[@class=‘CarMiniProfile-TableHeader’] (注意TableHeader中的大写'T')。 xpath区分大小写。 第二:通过查询// td [@ class ='CarMiniProfile-TableHeader'] / td,你暗示你在外部td中有一个'td'元素,而它们是兄弟姐妹。 有很多方法可以在这里获得制作和模型
这是你的答案: http://jsfiddle.net/gPsdk/40/ .preloader-container { position: absolute; top: 0px; right: 0px; bottom: 0px; left: 0px; background: #FFFFFF; z-index: 5; opacity: 1; -webkit-transition: all 500ms ease-out;
问题是,在启用Outlook库引用的情况下, olMailItem是一个保留常量,我认为当您将Dim olMailItem as Outlook.MailItem ,这不是问题,但是尝试设置变量会导致问题。 以下是完整的解释: 您已将olMailItem声明为对象变量。 在赋值语句的右侧,在将其值设置为对象的实例之前,您将引用此Object 。 这基本上是一个递归错误,因为你有对象试图自己分配自己。 还有另一个潜在的错误,如果之前已经分配了olMailItem ,这个语句会引发另一个错误(可能是
我建议使用wireshark http://www.wireshark.org/通过记录(“捕获”)设备可以看到的网络流量副本来“监听”网络上发生的对话。 当您开始捕获时,数据量似乎过大,但如果您能够发现任何看起来像您的SOAP消息的片段(应该很容易发现),那么您可以通过右键单击并选择来快速过滤到该对话'关注TCP Stream'。 然后,您可以在弹出窗口中查看您编写的SOAP服务与Silverlight客户端之间的整个对话。 如果一切正常,请关闭弹出窗口。 作为一个额外的好处,wireshar
Android默认情况下不提供TextView的合理结果。 您可以使用以下库并实现适当的aligntment。 https://github.com/navabi/JustifiedTextView Android Does not provide Justified aligntment of TextView By default. You can use following library and achieve proper aligntment. https://github.com/
你的代码适合我: class apples { public static void main(String args[]) { System.out.println("Hello World!"); } } 我将它下载到c:\ temp \ apples.java。 以下是我编译和运行的方式: C:\temp>javac -cp . apples.java C:\temp>dir apples Volume in drive C is HP_PAV
12个十六进制数字(带前导0x)表示48位。 那是256 TB的虚拟地址空间。 在AMD64上阅读wiki(我假设你在上面,对吗?)架构http://en.wikipedia.org/wiki/X86-64 12 hex digits (with leading 0x) mean 48 bits. That is 256 TB of virtual address space. Read wiki on AMD64 (I assume that you are on it, right?) ar
这将取决于你想要的。 对象有两种属性:类属性和实例属性。 类属性 类属性对于类的每个实例都是相同的对象。 class MyClass: class_attribute = [] 这里已经为类定义了MyClass.class_attribute ,您可以使用它。 如果您创建MyClass实例,则每个实例都可以访问相同的class_attribute 。 实例属性 instance属性仅在创建实例时可用,并且对于类的每个实例都是唯一的。 您只能在实例上使用它们。 在方法__init__中定