如何捕获段落编号作为文本的“一部分”并将其导出到DOCX?
我有一个文档,该文档分为几个部分和几个小节,其内容与一组状态法规(Statute 208
,包括小节Statute 208.1
,Statute 208.2
等)相似。我们通过修改.docx zip中的numbering.xml
文件来创建此文件。
我想将“子节”(208.5
)及其文本导出到单独的.docx文件中。我的VSTO外接程序可以很好地导出文本,但是编号重设到208.1
。确实有道理,因为它现在是文档中带有<ilvl>
的第一段。
很有趣的是,我能够调用Word.Range
的{{1}}函数并将此选择导出到PDF很好-甚至保留编号。这就引出了我尝试“渲染”所选内容(可能是将其打印出来)以将其放入新的.docx文件的方法,但是我也没有弄清楚。
ExportAsFixedFormat
同时使用Range.ExportFragment()
和wdFormatStrictOpenXMLDocument
作为wdFormatDocumentDefault
值。
wdSaveType
,使用Document.PrintOut()
和有效的文件名。我现在意识到,从字面上看,这会生成“打印指令”,并且不会在路径PrintToFile = true
处注入具有任何有效文件结构的新文件。
filename
到变量Application.Selection.XML
,并在新添加的Document对象上调用content
。
Document.Content.InsertXML(content)
答案 0 :(得分:1)
您可以在导出前使用ConvertNumbersToText(wdNumberAllNumbers),然后_Document.Undo()
或在导出后关闭而不保存。
答案 1 :(得分:1)
此(日期)链接上有一些很好的信息,这些信息仍应适用于当前的Word API: https://forums.windowssecrets.com/showthread.php/27711-Determining-which-ListTemplates-item-is-in-use-(VBA-Word-2000)
该链接上的信息表明,您可以为ListTemplate创建名称/句柄,以便您可以在代码中引用它-只要法规样式项目符号与文档的命名样式相关联即可。这个想法是先命名与活动文档的法规项目符号样式关联的ListTemplate,然后在访问ListLevels集合时引用该名称。
例如,您可能具有类似如下的代码:
ActiveDocument.Styles("StatutesBulletStyle").ListTemplate.Name = "StatuteBulletListTemplate";
完成上述分配后,您可以按名称引用模板:
ActiveDocument.ListTemplates("StatuteBulletListTemplate").ListLevels(1).StartAt = 5;
使用上述技术不再需要您尝试确定活动模板是什么...
有帮助吗?