注意: PDF の Richmedia は拡張子付きの PDF 1.7 であるため、Adobe Reader 9 以降でのみ動作することに注意してください (この機能にはバグが修正されていないため、10 は推奨されません)。
最初の答えはRenderXを使用することです。私はRenderXで働いているので、これは簡単です。これは、リッチメディア アノテーションと呼ばれるものを挿入するために使用できるテンプレート XSL です。
次のようなファイルに XML が含まれている場合があります。
<chart swf="SWF\Anychart.swf" flashvar="XMLData" width="300" height="300">
<anychart>....</anychart> <!-- put the XML for the chart here -->
<resources>
<resource src="img\a.png"/>
</resources>
</chart>
これらから取得して、以下のテンプレートを呼び出すことができます。
ここでのパラメータは次のとおりです。
chartxml: グラフを駆動する XML ファイル
幅と高さ: 一目瞭然
flashvar: XML を SWF に渡す FlashVar コマンド。Anychart の場合、これは「XMLData」です。Fusionchart の場合、これは「dataXML」です。
@swf: このテンプレートでは、これは実際の SWF ファイルへのパスです (「SWF'Anychart.swf」または「SWF\Bar2D.swf」など)。
リソース: チャートやマップなどに必要なその他の外部リソース (画像など)
<xsl:template name="add-on.richmedia">
<xsl:param name="chartxml"/>
<xsl:param name="width"/>
<xsl:param name="height"/>
<xsl:param name="flashvar"/>
<fo:block>
<rx:rich-media-object scaling="non-uniform" name="test" width="{concat($width,'pt')}" height="{concat($height,'pt')}" content-width="scale-to-fit" content-height="scale-to-fit" transparency="true">
<xsl:attribute name="src">
<xsl:value-of select="@swf"/>
</xsl:attribute>
<rx:flash-var name="{$flashvar}" content="true">
<xsl:apply-templates select="$chartxml" mode="copy-of"/>
</rx:flash-var>
<xsl:for-each select="resources/resource">
<rx:rich-media-resource>
<xsl:attribute name="src">
<xsl:text>url('</xsl:text>
<xsl:value-of select="@src"/>
<xsl:text>')</xsl:text>
</xsl:attribute>
<xsl:attribute name="name">
<xsl:value-of select="@src"/>
</xsl:attribute>
</rx:rich-media-resource>
</xsl:for-each>
</rx:rich-media-object>
</fo:block>
</xsl:template>
これにより、rx:rich-media-object を使用して FO ドキュメントにブロックが挿入されます。RenderX は、PDF 内の関連付けられたアセット (チャート XML および任意のリソース) をリンクする内部のすべてを処理します。PDF にフォーマットすると、ドキュメント内にインタラクティブな Flash チャートが表示されます。これを行う他の方法もあります。フラッシュを挿入して "XMLfile" (Anychart の場合) または "dataurl" を FUsioncharts に使用し、データへの URL ( http://mychartserver.com/getdataなど) などを入力して、動的データを PDF にフィードすることもできます。開くたびに。
iText の場合、ここに投稿するのではなく、サイトに完璧なサンプルがあります。このリンクを見てください。SWF とデータ セットを挿入するために必要な Java のすべてのコードが示されています。
http://itextpdf.com/examples/iia.php?id=300