Word 样式如何应用其格式设置?

Word 样式如何应用其格式设置?

我创建了几种自定义样式,以方便自己快速格式化许多 Word 文档。稍后,它们的内容将迁移到 Salesforce。

问题是,当我复制使用自定义样式格式化的内容并将其粘贴到 Salesforce 编辑器中时,格式就会丢失。当我手动在 Word 中格式化文本并将其粘贴到外部编辑器中时,不会发生这种情况。

在此处输入图片描述

我的问题是:

  1. Word 样式如何工作?它们是否将格式设置硬编码到文本中,还是 Word 只是使用它们在 Word 内部向用户呈现内容,但并未应用实际格式?

  2. 有什么建议可以让它按预期工作吗?

答案1

这是 SalesForce 的一个缺陷。

我不知道 SalesForce 是否了解内置样式,或者它如何从内置样式而不是自定义样式中获取材料。

以下是我网站上的文章:了解 Microsoft Word 中的样式

本质上,风格就像一个编程子程序。

您应用样式,Word 会读取文档中的样式设置以获取要应用的格式。它可以取代最多 50 个单独的直接格式设置。使用样式可以大大简化 Word 文件。

如果你解压其中一个 Word 文档,你就可以亲自看到这一点。

  1. 进行复印。
  2. 使用内置样式应用一些格式。
  3. 使用自定义样式应用一些格式。
  4. 然后使用正文或普通样式,应用直接格式化以获得相同的结果。
  5. 将您的文档保存为类似 StylesTest.docx 的文件。
  6. 然后,关闭它并在 Windows 中将其重命名为 Styles.Test.docx.zip,并允许 Windows 更改扩展名。您现在有一个 zip 文件夹。
  7. 双击打开它。
  8. 检查文档的 XML。

这里有一个示例文档的临时链接

以下是该文件的截图: 文档截图

这三个段落的文档 XML 如下所示: XML 的屏幕截图

  • 第 8 行是第一段的 XML。
  • 第 11 行是第二段的 XML。
  • 第 13-21 行是第三个(直接格式化)段落。

在单独的 XML 部分中,您可以找到样式的定义。以下是测试文档中用作自定义样式的样式正文文本 3 的定义。 样式 XML 的屏幕截图

这是示例文档中也使用的内置标题 1 样式的定义。 标题 1 的屏幕截图 XML

看看我提到的效率测试我的页面

以下是更多参考资料:

答案2

此宏负责将样式格式转换为直接格式。 https://answers.microsoft.com/en-us/msoffice/forum/msoffice_word-mso_other-mso_2010/how-can-i-removeconvert-styles-to-make-text-normal/b0ecb413-7d36-4643-bb34-0cd2cf08a9f3

引用该答案:

唯一合理的方法是使用宏。以下代码(参见http://www.gmayor.com/installing_macro.htm如果需要的话,它会逐段浏览文档。只要发现某个段落尚未采用 Normal 样式,它就会将字符格式和段落格式保存到变量中,将样式更改为 Normal,然后将段落的原始(样式)格式应用为直接格式。

Sub DirectFormat()
    Dim para As Paragraph
    Dim fnt As Font
    Dim pfmt As ParagraphFormat
    For Each para In ActiveDocument.Paragraphs
        With para
            If .Style <> ActiveDocument.Styles("Normal") Then
                Set fnt = .Style.Font
                Set pfmt = .Style.ParagraphFormat
                .Style = ActiveDocument.Styles("Normal")
                .Range.Font = fnt
                .Range.ParagraphFormat = pfmt
            End If
        End With
    Next
End Sub

如果这些段落开头有任何直接格式,则会将其丢弃(保留它将需要做很多工作)。出于说明目的,我认为这不会有问题。

Jay Freedman,Word MVP - 这是他的下载页面

相关内容