2013-02-12 86 views
0

我需要在A4大小的頁面中打印以下數據網格。它不適合與頁面大小和dataprovider不工作的printdatagrid.Pleasecorrect我。Flex數據網格打印問題,頁面大小爲

enter image description here

電流輸出是:

enter image description here

我的數據網格中:

<mx:DataGrid id="dashboardList" width="100%" height="95%" 
              alternatingItemColors="[0x373737, 0x373737]" 
              borderColor="#FFFFFF" borderStyle="inset" 
              chromeColor="#295A7D" contentBackgroundColor="#373737" 
              dataProvider="{allTrancList}" fontWeight="normal" 
              horizontalGridLineColor="#858585" click="productDatagrid_clickHandler(event)" 
              horizontalGridLines="true" variableRowHeight="true" 
              wordWrap="true"> 
            <mx:columns> 
             <mx:DataGridColumn width="60" headerText="S.No" 
                  labelFunction="serialNoLabelFunc2"/>         
             <mx:DataGridColumn width="60" dataField="trancCode" 
                  headerText="Order ID"/> 
             <mx:DataGridColumn dataField="date" headerText=" Date" 
                  labelFunction="getDateLabel"/> 
             <mx:DataGridColumn dataField="clientName" 
                  headerText="Client name"/> 
             <mx:DataGridColumn width="90" dataField="clientCode" 
                  headerText="Client code"/> 
             <mx:DataGridColumn dataField="itemType" 
                  headerText="Work/Product"/> 
             <mx:DataGridColumn width="60" dataField="itemNumbers" 
                  headerText="Count"/> 

             <mx:DataGridColumn dataField="cost" headerText="Cost"/> 

             <mx:DataGridColumn dataField="discountAmount" 
                  headerText="Discount"/> 
             <mx:DataGridColumn dataField="tax" headerText="Tax"/> 

             <mx:DataGridColumn dataField="total" headerText="Total"/> 

             <mx:DataGridColumn dataField="paymondmode" 
                  headerText="Payment mode"/> 
            </mx:columns> 
           </mx:DataGrid> 

我printData格:

<mx:PrintDataGrid id="myDataGrid" width="99%" height="100%"> 
     <mx:columns> 

      <mx:DataGridColumn width="60" dataField="trancCode" 
           headerText="Order ID"/> 

      <mx:DataGridColumn dataField="clientName" 
           headerText="Client"/> 
      <mx:DataGridColumn width="90" dataField="clientCode" 
           headerText="Client code"/> 
      <mx:DataGridColumn dataField="itemType" 
           headerText="Type"/> 
      <mx:DataGridColumn width="60" dataField="itemNumbers" 
           headerText="Count"/> 

      <mx:DataGridColumn dataField="cost" headerText="Cost"/> 

      <mx:DataGridColumn dataField="discountAmount" 
           headerText="Discount"/> 
      <mx:DataGridColumn dataField="tax" headerText="Tax"/> 

      <mx:DataGridColumn dataField="total" headerText="Total"/> 

      <mx:DataGridColumn dataField="paymondmode" 
           headerText="Payment mode"/> 
     </mx:columns> 
    </mx:PrintDataGrid> 

我的打印代碼:

var thePrintView:FormPrintView = new FormPrintView(); 
        addElement(thePrintView); 

        // Set the print view properties. 
        thePrintView.width=printJob.pageWidth; 
        thePrintView.height=printJob.pageHeight; 
        thePrintView.prodTotal = prodTotal; 

        // Set the data provider of the FormPrintView 
        // component's DataGrid to be the data provider of 
        // the displayed DataGrid. 
       // thePrintView.myDataGrid=PrintDataGrid(dashboardList); 
        thePrintView.myDataGrid.dataProvider =allTrancList; 
+0

有你嘗試在PrintDataGrid上設置variableRowHeight =「true」wordWrap =「true」,並將其他屬性設置爲與dashboardList datagrid相同。像: - 2013-02-12 07:31:38

回答

2

你可以找AlivePDFPurePDF,這兩種方法都將爲您提供更多的空間,有很多的可能性,展開你的翅膀能滿足不斷變化的需求。

請找到下面的代碼(此代碼只是在對於你的要求的可能性的洞察力,你可以找到從purePDF網站的測試文件全LIB [鏈接上述) -

package 
{ 
import flash.events.Event; 

import org.purepdf.colors.RGBColor; 
import org.purepdf.elements.Paragraph; 
import org.purepdf.elements.RectangleElement; 
import org.purepdf.pdf.PdfPCell; 
import org.purepdf.pdf.PdfPTable; 

public class PdfPTableColors extends DefaultBasicExample 
{ 
    public function PdfPTableColors(d_list:Array=null) 
    { 
     super(["Customize border and background color","of table cells"]); 
    } 

    override protected function execute(event:Event=null):void 
    { 
     super.execute(); 
     createDocument(); 
     document.open(); 

     registerDefaultFont(); 

     var table: PdfPTable = new PdfPTable(4); 
     table.widthPercentage = 100; 
     var cell: PdfPCell; 
     cell = PdfPCell.fromPhrase(new Paragraph("test colors:")); 
     table.addCell(cell); 

     cell = PdfPCell.fromPhrase(new Paragraph("red/no borders")); 
     cell.border = RectangleElement.NO_BORDER; 
     cell.backgroundColor = RGBColor.RED; 
     table.addCell(cell); 

     cell = PdfPCell.fromPhrase(new Paragraph("green/magenta bottom border")); 
     cell.border = RectangleElement.BOTTOM; 
     cell.borderColorBottom = RGBColor.MAGENTA; 
     cell.borderWidthBottom = 10; 
     cell.backgroundColor = RGBColor.GREEN; 
     table.addCell(cell); 

     cell = PdfPCell.fromPhrase(new Paragraph("blue/cyan top border + padding")); 
     cell.border = RectangleElement.TOP; 
     cell.useBorderPadding = true; 
     cell.borderWidthTop = 5; 
     cell.borderColorTop = RGBColor.CYAN; 
     cell.backgroundColor = RGBColor.BLUE; 
     table.addCell(cell); 

     cell = PdfPCell.fromPhrase(new Paragraph("test GrayFill:")); 
     table.addCell(cell); 

     cell = PdfPCell.fromPhrase(new Paragraph("0.25")); 
     cell.border = RectangleElement.NO_BORDER; 
     cell.grayFill = 0.25; 
     table.addCell(cell); 

     cell = PdfPCell.fromPhrase(new Paragraph("0.5")); 
     cell.border = RectangleElement.NO_BORDER; 
     cell.grayFill = 0.5; 
     table.addCell(cell); 

     cell = PdfPCell.fromPhrase(new Paragraph("0.75")); 
     cell.border = RectangleElement.NO_BORDER; 
     cell.grayFill = 0.75; 
     table.addCell(cell); 

     cell = PdfPCell.fromPhrase(new Paragraph("test bordercolors:")); 
     table.addCell(cell); 

     cell = PdfPCell.fromPhrase(new Paragraph("different borders")); 
     cell.borderWidthLeft = 6; 
     cell.borderWidthBottom = 5; 
     cell.borderWidthRight = 4; 
     cell.borderWidthTop = 2; 
     cell.borderColorLeft = RGBColor.RED; 
     cell.borderColorBottom = RGBColor.ORANGE; 
     cell.borderColorRight = RGBColor.YELLOW; 
     cell.borderColorTop = RGBColor.GREEN; 
     table.addCell(cell); 

     cell = PdfPCell.fromPhrase(new Paragraph("with correct padding")); 
     cell.useBorderPadding = true; 
     cell.borderWidthLeft = 6; 
     cell.borderWidthBottom = 5; 
     cell.borderWidthRight = 4; 
     cell.borderWidthTop = 2; 
     cell.borderColorLeft = RGBColor.RED; 
     cell.borderColorBottom = RGBColor.ORANGE; 
     cell.borderColorRight = RGBColor.YELLOW; 
     cell.borderColorTop = RGBColor.GREEN; 
     table.addCell(cell); 

     cell = PdfPCell.fromPhrase(new Paragraph("orange border")); 
     cell.borderWidth = 6; 
     cell.borderColor = RGBColor.ORANGE; 
     table.addCell(cell); 

     document.add(table); 
     document.close(); 
     save(); 
    } 
} 
} 
+0

您可以給任何adobe的鏈接空氣樣本。 – Naju 2013-02-12 13:51:27