即使你自己找到了答案,我也会把它留在这里,以防有人偶然发现这个寻找相关的东西。
有一个名为 Open XML SDK 2.5 Productivity Tool 的工具,您可以从 here 下载该工具,它允许您对 word .docx 文档进行逆向工程以获取 C# 代码以从头开始生成它。
为了获得您正在寻找的代码以生成任何类型的 word 元素(复选框、表格、项目符号列表...),您需要使用所述元素创建一个 word 文档并保存它。
然后,使用 Open XML SDK 2.5 Productivity Tool 打开它并单击“反映代码”按钮。生成的代码将向您展示如何创建这些元素、样式和其他格式。
这样,我得到了获取带有复选框的段落所需的代码
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
using A = DocumentFormat.OpenXml.Drawing;
using DW = DocumentFormat.OpenXml.Drawing.Wordprocessing;
using PIC = DocumentFormat.OpenXml.Drawing.Pictures;
public static Paragraph GenerateCheckboxParagraph(string internalName, int internalId, string textAfterTextbox)
{
var run1 = new Run(
new FieldChar(
new FormFieldData(
new FormFieldName() { Val = internalName },
new Enabled(),
new CalculateOnExit() { Val = OnOffValue.FromBoolean(false) },
new CheckBox(
new AutomaticallySizeFormField(),
new DefaultCheckBoxFormFieldState() { Val = OnOffValue.FromBoolean(false) }))
)
{
FieldCharType = FieldCharValues.Begin
}
);
var run2 = new Run(new FieldCode(" FORMCHECKBOX ") { Space = SpaceProcessingModeValues.Preserve });
var run3 = new Run(new FieldChar() { FieldCharType = FieldCharValues.End });
var run4 = new Run(new Text(textAfterTextbox));
var element =
new Paragraph(
run1,
new BookmarkStart() { Name = internalName, Id = new StringValue(internalId.ToString()) },
run2,
run3,
new BookmarkEnd() { Id = new StringValue(internalId.ToString()) },
run4
);
return element;
}