C# .NET DocX 向图像插入标题
C# .NET DocX inserting captions to an Image
有没有办法像 MS word 允许您在右键单击图像时插入标题一样在图像中插入标题?问题是现有的标题支持与 right-click 方法的不同之处在于图号未更新。我想以完全相同的方式进行操作,以便图号本身也附有标题。
经过大约 2 天的研究,我自己找到了一种在 Word 中插入标题的方法,就像我们右键单击图像或 table 时的“插入标题”选项一样。
实际上在 MS Word 中,数字或 table 数字是 文档字段 。是的,这听起来有点新,但这些字段就在那里,可以通过右键单击文档中任何插入的标题并单击 切换字段代码 来查看。可以说,这些实际上是代表不同含义的公式。例如 {SEQ}
表示初始化一个从 1 开始的序列。
好的,关于标题的内容已经足够了。简而言之,我们需要插入一个带有公式的“文档字段”来为图像插入标题。
实际上,这可以通过使用 Simple Fields 在 Xceed Opensource 库中实现。简单字段是文档字段的精确副本。 Xceed 示例在其 HeaderFooter 示例中使用简单的方法来实现向文档添加页码。
我已经实现了类似于 AppendPageNumber(PageNumberFormat pnf)
函数的函数。
您可以使用它来实现 Paragraph.cs
中的字幕
public Paragraph InsertNumberedSequence()
{
XElement fldSimple = new XElement( XName.Get( "fldSimple", Document.w.NamespaceName ) );
fldSimple.Add( new XAttribute( XName.Get( "instr", Document.w.NamespaceName ), @"SEQ " ) );
XElement content = XElement.Parse
(
@"<w:r w:rsidR='001D0226' xmlns:w=""http://schemas.openxmlformats.org/wordprocessingml/2006/main"">
<w:rPr>
<w:noProof />
</w:rPr>
<w:t>1</w:t>
</w:r>"
);
fldSimple.Add( content );
Xml.Add( fldSimple );
return this;
}
添加字幕可以使用
document.InsertParagraph($"captionLabel ").InsertNumberedSequence().Append(" my caption text");
有没有办法像 MS word 允许您在右键单击图像时插入标题一样在图像中插入标题?问题是现有的标题支持与 right-click 方法的不同之处在于图号未更新。我想以完全相同的方式进行操作,以便图号本身也附有标题。
经过大约 2 天的研究,我自己找到了一种在 Word 中插入标题的方法,就像我们右键单击图像或 table 时的“插入标题”选项一样。
实际上在 MS Word 中,数字或 table 数字是 文档字段 。是的,这听起来有点新,但这些字段就在那里,可以通过右键单击文档中任何插入的标题并单击 切换字段代码 来查看。可以说,这些实际上是代表不同含义的公式。例如 {SEQ}
表示初始化一个从 1 开始的序列。
好的,关于标题的内容已经足够了。简而言之,我们需要插入一个带有公式的“文档字段”来为图像插入标题。
实际上,这可以通过使用 Simple Fields 在 Xceed Opensource 库中实现。简单字段是文档字段的精确副本。 Xceed 示例在其 HeaderFooter 示例中使用简单的方法来实现向文档添加页码。
我已经实现了类似于 AppendPageNumber(PageNumberFormat pnf)
函数的函数。
您可以使用它来实现 Paragraph.cs
public Paragraph InsertNumberedSequence()
{
XElement fldSimple = new XElement( XName.Get( "fldSimple", Document.w.NamespaceName ) );
fldSimple.Add( new XAttribute( XName.Get( "instr", Document.w.NamespaceName ), @"SEQ " ) );
XElement content = XElement.Parse
(
@"<w:r w:rsidR='001D0226' xmlns:w=""http://schemas.openxmlformats.org/wordprocessingml/2006/main"">
<w:rPr>
<w:noProof />
</w:rPr>
<w:t>1</w:t>
</w:r>"
);
fldSimple.Add( content );
Xml.Add( fldSimple );
return this;
}
添加字幕可以使用
document.InsertParagraph($"captionLabel ").InsertNumberedSequence().Append(" my caption text");