2010-01-12 36 views
2

我正在尝试使用AlivePDF将图表保存到.pdf文件中。然而,当我试图保存我的图表时,它最终会在pdf中剪切一半图表,因此它甚至不能完全可见。 AlivePDF用于生成我的PDF的屏幕截图似乎太少了。Flex AlivePDF导出图表。正在剪辑的图表

我想从示例中获取图表以使用我从网上摘录的alivepdf的示例代码。

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> 
     <mx:Script> 
     <![CDATA[ 
      import org.alivepdf.pages.Page; 
      import org.alivepdf.layout.Resize; 
      import org.alivepdf.pdf.PDF; 
      import org.alivepdf.layout.Orientation; 
      import org.alivepdf.layout.Size; 
      import org.alivepdf.layout.Unit; 
      import org.alivepdf.display.Display; 
      import org.alivepdf.saving.Method; 
      import org.alivepdf.fonts.FontFamily; 
      import org.alivepdf.fonts.Style; 
      import org.alivepdf.colors.RGBColor; 

      private var myPDF:PDF; 

      function generatePDF (e:MouseEvent) 
      { 
       myPDF = new PDF (Orientation.LANDSCAPE, Unit.MM, Size.A4); 
       myPDF.setDisplayMode (Display.FULL_WIDTH);    
       myPDF.addPage(); 
       myPDF.addImage (myChart); 
       myPDF.save(Method.REMOTE, "http://alivepdf.bytearray.org/wp-content/demos/create.php", "drawing.pdf"); 
      } 
     ]]> 
    </mx:Script> 
     <mx:XML xmlns="" id="myData"> 
     <items> 
      <item year="1960" rain="92" /> 
      <item year="1961" rain="192" /> 
      <item year="1962" rain="32" /> 
      <item year="1963" rain="52" /> 
      <item year="1964" rain="112" /> 
      <item year="1965" rain="52" /> 
      <item year="1966" rain="88" /> 
      <item year="1967" rain="52" /> 
      <item year="1968" rain="66" /> 
      <item year="1969" rain="39" /> 
      <item year="1970" rain="192" /> 
      <item year="1971" rain="182" /> 
      <item year="1972" rain="177" /> 
      <item year="1973" rain="179" /> 
      <item year="1974" rain="198" /> 
      <item year="1975" rain="207" /> 
     </items> 
    </mx:XML> 
     <mx:XMLListCollection id="rainData" source="{myData.children()}" /> 

     <mx:Button horizontalCenter="0" click="generatePDF(event)" label="Generate PDF" id="generate_btn" /> 
     <mx:BarChart id="myChart" 
         width="100%" height="100%" 
         dataProvider="{rainData}"> 

      <mx:verticalAxis> 
       <mx:CategoryAxis id="yearAxis" categoryField="@year" /> 
      </mx:verticalAxis> 

      <mx:horizontalAxis> 
       <mx:LinearAxis id="linAxis" minimum="0" maximum="200" /> 
      </mx:horizontalAxis> 

      <mx:series> 
       <mx:BarSeries yField="@year" xField="@rain" displayName="Rain"/> 
      </mx:series> 
     </mx:BarChart> 
</mx:Application> 

任何帮助让我的整个图表显示在.pdf文件中会很好。令人烦恼的是,我无法弄清楚这些简单的事情。

+0

您的图表比横向模式下的A4页面的宽度/高度更宽/更高吗?尝试使用“addImage”大小值玩,看看会发生什么。将像素转换为“Unit.MM”时可能会遇到问题。 – Glenn 2010-01-12 21:21:08

+0

宽度和高度都设置为100%,所以它们的值不是硬编码的。 – FlexMan 2010-01-13 01:57:36

+0

是的。所以如果你的屏幕宽度是1400px,那么你的图像宽度将大约为1400px。这如何转化为Unit.MM?强制addImage调用大小的结果是什么? – Glenn 2010-01-13 21:11:08

回答

2

而不是:

myPDF.addImage(myChart);

尝试:

myPDF.addImage(。myChart,NULL,0,0,myPDF.getMargins()宽度,myPDF.getMargins()高度);

-Deepak