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アプリケーションのコードははるかにクリーンなソリューションになります。または、おそらく両方の組み合わせ...