JABFreewareは、私が使用した方法に触れました。FlowDocumentコンテンツを取得してrtfを作成し、新しいWordドキュメントを作成して保存します。ただし、Microsoft.Office.Interop.Wordなどのライブラリには触れたくない場合があります。
他の方法の例もいくつかあります。たとえば、次のオープンソースのFlowDocumentエディターをここで確認できます。それは古いですが、それでも有益であり、FlowDocumentsをdocxに変換します。これにより、MicrosoftのサイトからOpenXml SDKを調べることができます(リンクを増やすには十分な担当者ではありませんが、Googleがアクセスします)。
また、これは参考として役立つかもしれません。これは、WordドキュメントをFlowDocumentsに変換できるソースコードを取得できるWordアドオンです。元のリクエストから逆になっていますが、プロセスを逆にする可能性があります。
これのいくつかが役立つことを願っています。
編集:
あなたが本当にごまかしたいと思っていて、あなたが作成する文書が本当に基本的であるなら、あなたはそうすることができます。ただし、これはdocxでのみ機能することを知っています。
- 最初にいくつかのフォーマットを使用して(docxとして)単純な単語ドキュメントを作成します。
- 内容を抽出し、/ word/document.xmlファイル以外のすべてを保持します。
- /word/document.xmlファイルを開き、それをXSLTのテンプレートとして使用します。ここで簡単なものを作成しました:
FlowDocument XML
<?xml version="1.0" encoding="utf-8"?>
<FlowDocument xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
  <Paragraph>
    <Run FontWeight="Bold" Foreground="#FF0000">Testing</Run>
  </Paragraph>
  <Paragraph>
    <Run FontWeight="Bold" Foreground="#0000FF">Testing2</Run>
  </Paragraph>
</FlowDocument>
XSLT(デモ目的で部分的にのみ実行)
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<xsl:template match="/x:FlowDocument">
    <?mso-application progid="Word.Document"?>
    <w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
       <w:body>
          <w:sect>
        <w:p>
                <xsl:for-each select="x:Paragraph">
            <w:pPr>
                <w:jc w:val="center" />
                <w:spacing w:after="0" w:line="240" w:lineRule="auto"/>
            </w:pPr>
            <w:r>
                <w:rPr>
                    <w:rFonts w:ascii="Segoe UI" w:hAnsi="Segoe UI" w:cs="Segoe UI" />
                    <w:sz w:val="18" />
                    <w:b w:val="on" />
                    <w:i w:val="off" />
                    <w:color>
                        <xsl:attribute name="w:val"><xsl:value-of select="x:Run/@Foreground"/></xsl:attribute>
                    </w:color>
                </w:rPr>
                <w:t><xsl:value-of select="x:Run" /></w:t>
            </w:r>
    </xsl:for-each>
        </w:p>
      </w:sect>
    </w:body>
  </w:document>
</xsl:template>
</xsl:stylesheet>
- XmlDocumentとXamlWriterを使用して、変換するxmlを作成します。
- 変換結果を新しい「document.xml」として保存し、それを/ wordディレクトリに配置して、すべてを.docx拡張子の付いたアーカイブとしてパッケージ化します。
最大の頭痛の種は、FlowDocumentsがおそらくRGBAになることですが、WordMLはcolor属性でRBGと連携します。
したがって、1つのxsltですべてを取得する方法がありますが、それは頭痛の種でもあります。私見ですが、OpenXmlWriterアプリケーションのコードははるかにクリーンなソリューションになります。または、おそらく両方の組み合わせ...