正如问题所述,我的目标是找到一个python库,从.docx文件中提取文本和字体信息。例如,对于以下文本:“helloworld”我需要能够读取字符串hello是粗体而不是斜体,字符串world是粗体而不是斜体。除了知道文本是粗体还是斜体,我还需要知道其他信息,如大小、颜色、字体类型(如ariel、times new roman)等。我需要能够读取整个.docx文件并提取信息
我曾尝试使用PythonDocx库,并且能够提取文本,但无法提取.docx文件中的相关字体信息。例如,在以下代码中:
import docx
doc = docx.Document('cg0002.docx')
for para in doc.paragraphs:
for run in para.runs:
font = run.font
is_bold = font.bold
我会得到字体,并且粗体为“无”。经过进一步研究,我了解到您不能使用库来阅读.docx字体,但您必须自己指定它们。有没有其他的图书馆可以用来实现我的目标
我愿意做出妥协:我并不特别坚持使用python来解决这个问题。我可以使用任何其他语言,如java、javascript、c/c++、powershell等。我还可以将文档转换为其他格式,如pdf,如果这样可以更容易地提取信息,前提是文档保持完整(例如,我可以尝试将其上传到谷歌文档,并使用appscript尝试提取文本,但一些字体在使用谷歌文档查看后不会保留,因此我不想这样做
对于DocX来说,最好使用VBA来收集细节
然而,一个“潜在的”替代方法可能是通过从写字板导出到基本RTF来简单地删除任何样式覆盖。然后查看目标块的重定义特征
注意:-根据转换情况,这可能不是100%可靠的,以实现您的目标
虽然我们可以从命令行使用写字板将DocX转换为PDF,但如果不使用VBS宏,我们无法将DocX转换为RTF,但这是另一个问题
从页眉可以看到CodePage=1252&;2057=
英国(英国)英国:-)按眼睛分类
\b\f0\fs24\lang9 Hello \b0\i World\ul\i0 !\ulnone\fs22\par
p.S.
我重新访问了源代码,进行了2次更正,看看您是否能够解决这两个更改。第二个的“我的”线索在上面,但在使用正则表达式时很容易让你绊倒
\b\f0\fs22\lang9 Hello,\i \b0 World\ul\i0 !\ulnone\par
虽然它最终应该是
\b\f0\fs22\lang9 Hello,\b0 \i World\ul\i0 !\ulnone\par
相关问题 更多 >
编程相关推荐