0

OpenXml でこの構造を作成しようとしています。

<P>
 <Table />
 <Caption>Table 1 - Some Text 1 </Caption>
 <Picture />
 <Caption>Figure 1 - Some Text 2 </Caption>
</P>

私が持っているコードに関して:

var currentLine = new Paragraph();
currentLine.AppendChild(new Run(elem));  -> Where the elem is Table
...
currentLine.AppendChild(new Run(elem2)); -> Where the elem2 is Drawing

そのため、キャプションを追加する方法を見逃しているだけです。これは、MS Word の [参照] -> [キャプションの挿入] で実行できるのと同じキャプションです。

これを達成する方法についていくつかの情報をいただければ幸いです。

ルイ

4

2 に答える 2

4

キャプションを作成するために使用した方法は次のとおりです。基本的に、SimpleField を作成し、段落に追加します。

public Paragraph CreateCaption( string caption, string name )
        {
            Run run = new Run( new Text() { Text= name + " ", Space = SpaceProcessingModeValues.Preserve } );
            SimpleField simpleField = new SimpleField( new Run( new RunProperties( new NoProof() ), new Text() { Text= " ", Space = SpaceProcessingModeValues.Preserve } ) );
            simpleField.Instruction = @"SEQ " + name;
            Run runLabel = new Run( new Text() { Text= " " + caption, Space = SpaceProcessingModeValues.Preserve } );

            ParagraphProperties captionPr = new ParagraphProperties( new ParagraphStyleId() { Val = "Caption" } );
            Paragraph paragraph = new Paragraph();
            paragraph.ParagraphProperties = captionPr;
            paragraph.Append( run );
            paragraph.Append( simpleField );
            paragraph.Append( runLabel );
            return paragraph;
        }
于 2014-12-23T21:34:09.917 に答える
0

これを使用してください: http://www.microsoft.com/en-us/download/details.aspx?id=5124

(生産性向上ツール) - Word 文書を調べて、それらが何で構成されているかを確認します。

コードは次のとおりです。

 SimpleField sf = new SimpleField(new Run(new Text("Figure 1")));

実際に何かをリンクするには、sfinstructionプロパティを設定する必要があります。

于 2013-03-21T13:56:13.073 に答える