通过字体解析Word文档?

发布于 2024-11-17 18:52:50 字数 327 浏览 4 评论 0原文

我目前正在尝试编写一个脚本,该脚本将运行一个Word文档并将以某种字体编写的所有行输出到文本文件。

因此,如果我有该文档:

“这是文档的第一行。 这是文档的第二行。 这是文档的第三行。

并假设正常行是 Times New Roman,粗体是 Arial,斜体是 Sans Serif。

然后,理想情况下,我可以解析文档中的所有行 Arial文本文件输出将包含以下行:

这是文档的第二行。

关于如何从脚本执行此操作,我正在考虑首先将文档转换为 xml,但我认为这在内部是不可能的。一个脚本。

I'm currently trying to write a script which would run through a word document and output to a text file all the lines that are written in a certain font.

So if I had the document:

"This is the first line of the document.
This is the second line of the document.
This is the third line of the document."

And say normal lines are Times New Roman, bold is Arial, and italics is Sans Serif.

Then, ideally, I could parse the document for all lines in Arial and the text file output would have the line:

This is the second line of the document.

Any idea on how to do this from a script? I was thinking about first converting the doc into xml, but I do not think this is possible within a script.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

灰色世界里的红玫瑰 2024-11-24 18:52:50

您将需要使用 FIND 对象以及 FIND 对象的 FONT 属性。

所以,像这样:

Public Sub FindTest()
    Dim r As Range
    Set r = ActiveDocument.Content
    With r.Find
        .ClearFormatting
        .Style = "SomeStyleName"
        Do While .Execute(Forward:=True, Format:=True) = True
            '---- we found a range
            Dim duperange As Range
            Set duperange = r.Duplicate
            Debug.Print r.Text
        Loop
    End With
End Sub

请注意,在我指定样式的地方,您可以通过 FIND.FONT 对象或各种其他格式选项指定字体格式。只需浏览 FIND 对象即可查看可用的内容。

You'll want to use the FIND object, and the FONT property of the FIND object.

So, something like this:

Public Sub FindTest()
    Dim r As Range
    Set r = ActiveDocument.Content
    With r.Find
        .ClearFormatting
        .Style = "SomeStyleName"
        Do While .Execute(Forward:=True, Format:=True) = True
            '---- we found a range
            Dim duperange As Range
            Set duperange = r.Duplicate
            Debug.Print r.Text
        Loop
    End With
End Sub

Note that where I've specified Style, you could specify font formatting via the FIND.FONT object, or various other formatting options. Just browse around the FIND object to see what's available.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文