2013-06-22 2 views
-1

정렬, 드릴 다운, 그룹화, 축소 축소 등의 기능이있는 동적 차트 또는 그래프를 PDF에 포함하려고합니다. 한 가지 옵션은 플래시 SWF에서 동적 차트를 만드는 것입니다. XML 파일 &에서 가져온 다음이 SWF와 XML 파일을 PDF에 포함합니다. iText를 사용하여 SWF에 PDF를 포함시킬 수 있다는 것을 알고 있습니다. 그러나 동시에 SWF & XML을 PDF에 포함하는 방법. 이게 효과가 있니? 내 다른 질문은 무료 또는 저렴한 비용으로 사용할 수있는 동적 차트 또는 그래프가있는 PDF를 만드는 데 사용할 수있는 SWF + XML 콤보 이외의 옵션이 있는지 여부입니다. JasperReports 또는 BIRT 또는 Pentaho 또는 FusionCharts를 사용하여이 작업을 수행 할 수 있습니까? 다이나믹 FusionCharts를 PDF에 포함시킬 수 있습니까?PDF의 동적 차트 또는 그래프

감사합니다,

의 WAP 라우

+0

그것은 iText를하고 RenderX로 모두 가능하다이,이 내가 가장 많이 사용하는 두 가지 도구가 있습니다. 또한 대화 형 Flash 내용을 포함 할 수 있습니다. Anychart를 사용하지만 Fusionchart도 작동합니다. 코드를 게시 할 수 있습니다. 그것을 파헤쳐 야합니다. –

답변

1

한 참고 :이 버그를 가지고로 (10)가 권장되지 않습니다 (9 + 리치 미디어 PDF 파일 확장자가 PDF 1.7이고 따라서 단지 어도비 리더와 함께 작동주의하십시오 기능은 결코 고쳐지지 않았다).

RenderX에서 첫 번째 대답은 RenderX를 사용하기 때문에 쉽습니다. RichMedia Annotation을 삽입하는 데 사용할 수있는 템플릿 XSL이 있습니다.

<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> 

당신이에서 얻을 수 아래의 템플릿을 호출 :

는이 같은 파일에 일부 XML을 가질 수있다. 여기

매개 변수는 다음과 같습니다

chartxml : 자기 설명

에 FlashVar : FlashVar를 명령은 SWF에 XML을 통과 차트를

폭과 높이를 구동하는 XML 파일입니다. Anychart의 경우 Fusionchart의 경우 "XMLData"입니다.

@swf :이 템플릿에서이 템플릿은 실제 SWF 파일의 경로입니다 (예 : "SWF'Anychart.swf"또는 "SWF \ Bar2D.swf "

자원 (이미지 같은) 다른 외부 차트에 필요한 자원이나지도 또는 어떤이는 RX와 FO 문서에 블록을 삽입 할

<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> 

:. 리치 미디어 객체 RenderX PDF 내의 연관된 애셋 (차트 XML 및 모든 리소스)을 연결하는 모든 내부를 처리합니다. 결과적으로 대화식 Flash 차트가 do PDF로 형식화 할 때 설명. 이 작업을 수행하는 다른 방법도 있습니다. 플래시를 삽입하고 FUsioncharts에 "XMLfile"(Anychart의 경우) 또는 "dataurl"을 사용하고 데이터에 대한 URL (예 : http://mychartserver.com/getdata) 또는 기타를 입력하고 PDF가 열릴 때마다 동적 데이터를 피드 할 수 있습니다.

iText의 경우 여기에 더 많은 내용을 게시하는 대신 완벽한 샘플이 사이트에 있습니다. 이 링크를 봐, 그것은 SWF 및 데이터 세트를 삽입하는 데 필요한 자바의 모든 코드를 보여줍니다

http://itextpdf.com/examples/iia.php?id=300