如何使用 DocX.dll 在同一行中添加两个段落?

How to add two paragraphs in the same line using DocX.dll?

我想知道是否可以使用 docX.dll 在同一行中添加 2 个段落。例如,我希望我的文档看起来像这样:

MS WORD DOCUMENT:

Name and surname: AAA BBB_________Age:DD

Date of birth: aa.bb.cc.__________Nationality: ABC

_ 表示间距,因为我不能 space 和 spacebar。 带有 b 和 c 的单词是添加的单词,所以我想做这样的间距,对于不同长度的添加单词来说都是一样的。

可以隐藏段落标记以便将两个段落放在同一行,但这绝对不是满足您要求的最佳方式。

假设我正确地遵循了您的要求,那么您和 Stephen 使用 TAB 字符和为段落定义的 TAB 停止符走在正确的轨道上。制表位可以定义为左对齐、居中对齐或右对齐,因此您需要一个右对齐的制表位(可能在右边距)。

您可以通过单击需要间距的段落在 Word UI 中对此进行测试。将光标放在标尺左侧的按钮上("page" 上方)。单击它两次,它将从左对齐(默认)变为居中对齐再变为右对齐。现在将光标放在标尺上文本应右对齐的位置(可能是右边距?)。单击一次。如果您的文本中还没有 TAB 字符,请插入它,您应该会看到 TAB 跳转到制表符位置后的文本。

而且,正如 Stephen 所建议的,"best practise" 是使用一种样式将此格式应用于应具有此 "spacing" 的段落。

此方法的替代方法是使用两列 table。这对于较长的文本有好处,它可以换行并仍然正确对齐。

我使用 table 设法解决了这个问题。这是我的 table:

代码
Table t = document.AddTable(2, 4); // rows and columns - 2 and 4
t.Alignment = Alignment.center;
Border b = new Border(Novacode.BorderStyle.Tcbs_none, BorderSize.one, 1, Color.White);
t.SetBorder(TableBorderType.Bottom, b);
t.SetBorder(TableBorderType.Left, b);
t.SetBorder(TableBorderType.Right, b);
t.SetBorder(TableBorderType.Top, b);
t.SetBorder(TableBorderType.InsideH, b);
t.SetBorder(TableBorderType.InsideV, b);

向 table 添加值的示例:

t.Rows[0].Cells[0].Paragraphs.First().Append("AAA BBB:_____________");