2010-01-12 3 views
2

AlivePDF를 사용하여 차트를 .pdf 파일로 저장하려고합니다. 그러나 차트를 저장하려고하면 pdf에서 차트의 절반을 클리핑하여 완전히 볼 수 없습니다. AlivePDF가 내 PDF를 생성하기 위해 취한 screencapture가 너무 작았습니다.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

+0

너비와 높이가 모두 100 %로 설정되어있어 그 값이 하드 코드되지 않습니다. – FlexMan

+0

예. 따라서 화면의 너비가 1400 픽셀이면 너비가 약 1400 픽셀이됩니다. 그게 Unit.MM으로 어떻게 변환됩니까? addImage 호출시 크기를 강제 한 결과는 무엇입니까? – Glenn

답변

2

대신 :

myPDF.addImage (myChart);

보십시오

myPDF.addImage (.. myChart, NULL, 0,0, myPDF.getMargins() 폭 myPDF.getMargins() 높이);

-Deepak

관련 문제