2017-09-22 6 views
0

Je travaille sur un projet où je dois faire un rapport de vente dans lequel j'ai un titre de page, un en-tête de page, un diagramme et des tableaux et son grand total etc. Bas de page. J'ai utilisé ColumnText pour ajouter le titre de page, l'en-tête de page, le graphique à barres et les tables et son grand total etc. et pied de page dans iText5 pour la position absolue de son composant. J'ai un problème avec Table dans notre base de données J'ai au plus 15 lignes mais dans le document Pdf il montre seulement 6 lignes. Je veux ajouter le reste de ces Rows dans la page suivante mais il n'a pas apparu, et je veux également ajouter le titre de page et le pied de page dans la page suivante du document Pdf. Après avoir ajouté toutes les lignes restantes au dernier Grand Total, Total Payé et Balance Box, il apparaîtra.Ajouter automatiquement une nouvelle page lorsque la hauteur de la table dépasse dans iText

Voici un code source:

import java.awt.EventQueue; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JTextField; 

import java.awt.Color; 
import javax.swing.border.LineBorder; 
import javax.swing.JLabel; 
import javax.swing.JOptionPane; 

import java.awt.Font; 
import java.awt.Graphics2D; 
import java.io.File; 
import java.io.FileOutputStream; 
import java.sql.Connection; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.text.DateFormat; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

import javax.swing.SwingConstants; 
import javax.swing.UIManager; 
import javax.swing.border.TitledBorder; 

import org.jfree.chart.ChartFactory; 
import org.jfree.chart.ChartFrame; 
import org.jfree.chart.ChartUtilities; 
import org.jfree.chart.JFreeChart; 
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator; 
import org.jfree.chart.plot.CategoryPlot; 
import org.jfree.chart.plot.PlotOrientation; 
import org.jfree.chart.renderer.category.StackedBarRenderer; 
import org.jfree.data.category.DefaultCategoryDataset; 
import org.jfree.data.general.DefaultPieDataset; 

import com.alee.laf.WebLookAndFeel; 
import com.itextpdf.awt.DefaultFontMapper; 
import com.itextpdf.text.BaseColor; 
import com.itextpdf.text.Document; 
import com.itextpdf.text.Element; 
import com.itextpdf.text.FontFactory; 
import com.itextpdf.text.Image; 
import com.itextpdf.text.Paragraph; 
import com.itextpdf.text.Phrase; 
import com.itextpdf.text.Rectangle; 
import com.itextpdf.text.pdf.ColumnText; 
import com.itextpdf.text.pdf.PdfContentByte; 
import com.itextpdf.text.pdf.PdfPCell; 
import com.itextpdf.text.pdf.PdfPTable; 
import com.itextpdf.text.pdf.PdfTemplate; 
import com.itextpdf.text.pdf.PdfWriter; 
import com.toedter.calendar.JDateChooser; 
import javax.swing.JButton; 
import javax.swing.ImageIcon; 
import java.awt.event.ActionListener; 
import java.awt.geom.Rectangle2D; 
import java.awt.event.ActionEvent; 

public class SalesReport { 

    private JFrame frmSalesReport; 
    private static Connection con; 
    private PreparedStatement PStat; 
    private ResultSet res; 
    private String query; 
    private String Grand,totalpaid,paydue; 
    private Double grand,grandtotal=0.0,Total_paid,tot_Paid=0.0,PayDue,Pay_Due=0.0; 
    private JDateChooser ToDate,FromDate; 

    /** 
    * Launch the application. 
    */ 
    public static void main(String\[\] args) { 
     EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       try { 
        SalesReport window = new SalesReport(); 
        window.frmSalesReport.setVisible(true); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
    } 

    /** 
    * Create the application. 
    */ 
    public SalesReport() { 
     initialize(); 
     con=CompanyInfo.Database(); 
    } 

    public void GenerateReport() 
    { 
     try 
     { 
      Document document=new Document();  
      PdfWriter writer=PdfWriter.getInstance(document,new FileOutputStream("SalesReport.pdf"));  
      document.open(); 

      PdfContentByte canvas=writer.getDirectContent(); 

      Rectangle rect=new Rectangle(1,715,600,841);//left,bottom,right,top 
      rect.setBorder(Rectangle.BOX); 
      rect.setBackgroundColor(new BaseColor(31,155,118)); 
      rect.setBorderWidth(2); 
      rect.setBorderColor(new BaseColor(31,155,118)); 
      canvas.rectangle(rect); 

      String imagename="C:/Users/Mdazaz/workspace/InventorySystem/Images/index3.jpg"; 
      Image img=Image.getInstance(imagename); 
      img.scaleToFit(100, 100); 
      img.setAbsolutePosition(80, 730); 
      canvas.addImage(img); 


      String Title="ABC Pvt. Ltd."; 
      Paragraph paraTitle=new Paragraph(Title,FontFactory.getFont(FontFactory.TIMES_BOLDITALIC,14,Font.BOLD,BaseColor.WHITE)); 
      paraTitle.setAlignment(Element.ALIGN_CENTER); 

      String Address="356/3 Malviaya Nagar Near Khatushiyam Mandir Indore"; 
      Paragraph paraAddress=new Paragraph(Address,FontFactory.getFont(FontFactory.TIMES_BOLDITALIC,14,Font.BOLD,BaseColor.WHITE));    
      paraAddress.setAlignment(Element.ALIGN_CENTER); 

      String Contact="Contact No.=7030456328"; 
      Paragraph paraContact=new Paragraph(Contact,FontFactory.getFont(FontFactory.TIMES_BOLDITALIC,14,Font.BOLD,BaseColor.WHITE));    
      paraContact.setAlignment(Element.ALIGN_CENTER); 

      String Email="Email ID: [email protected]"; 
      Paragraph paraEmail=new Paragraph(Email,FontFactory.getFont(FontFactory.TIMES_BOLDITALIC,14,Font.BOLD,BaseColor.WHITE));    
      paraEmail.setAlignment(Element.ALIGN_CENTER); 

      ColumnText column=new ColumnText(canvas); 
      column.setSimpleColumn(200,840,454,720); 
      column.addElement(paraTitle); 
      column.addElement(paraAddress); 
      column.addElement(paraContact); 
      column.addElement(paraEmail); 
      column.go(); 

      Date date=new Date(); 
      Paragraph paradate=new Paragraph(date.toString(),FontFactory.getFont(FontFactory.TIMES_BOLDITALIC,14,Font.BOLD,BaseColor.BLACK));   
      paradate.setAlignment(Element.ALIGN_CENTER); 

      Rectangle footer=new Rectangle(1,1,594,50);//left,bottom,right,top 
      footer.setBorder(Rectangle.BOX); 
      footer.setBackgroundColor(new BaseColor(31,155,118)); 
      footer.setBorderWidth(2); 
      footer.setBorderColor(new BaseColor(31,155,118)); 
      canvas.rectangle(footer); 

      String page="Page Number: "+String.valueOf(writer.getPageNumber()); 
      Paragraph parapage=new Paragraph(page,FontFactory.getFont(FontFactory.TIMES_BOLDITALIC,14,Font.BOLD,BaseColor.WHITE));   
      parapage.setAlignment(Element.ALIGN_CENTER); 

      ColumnText columnFooter=new ColumnText(canvas); 
      columnFooter.setSimpleColumn(footer); 
      columnFooter.addElement(parapage); 
      columnFooter.go(); 

      DateFormat year=new SimpleDateFormat("yyyy"); 
      String fromyear=year.format(FromDate.getDate()); 
      String toyear=year.format(ToDate.getDate()); 

      int fyear=Integer.parseInt(fromyear); 
      int tyear=Integer.parseInt(toyear); 

      Date date1=FromDate.getDate(); 
      Date date2=ToDate.getDate(); 
      String fromDate=DateFormat.getDateInstance().format(date1);//((JTextField)FromDate.getDateEditor().getUiComponent()).getText(); 
      String toDate=DateFormat.getDateInstance().format(date2);//((JTextField)FromDate.getDateEditor().getUiComponent()).getText(); 

      int serialNo=1; 

      PdfPTable table=new PdfPTable(7); 
      table.setSplitLate(false); 
      PdfPCell Data=new PdfPCell(); 
      table.setWidthPercentage(110); 

      String serialno="Serial No"; 
      Data=new PdfPCell(new Phrase(serialno,FontFactory.getFont(FontFactory.TIMES_BOLDITALIC,10,Font.BOLD,BaseColor.WHITE))); 
      Data.setBackgroundColor(BaseColor.DARK_GRAY); 
      Data.setHorizontalAlignment(Element.ALIGN_CENTER); 
      Data.setVerticalAlignment(Element.ALIGN_MIDDLE); 
      Data.setFixedHeight(30f); 
      Data.setBorderWidth(1); 
      table.addCell(Data); 

      String Invoice="Invoice No"; 
      Data=new PdfPCell(new Phrase(Invoice,FontFactory.getFont(FontFactory.TIMES_BOLDITALIC,10,Font.BOLD,BaseColor.WHITE))); 
      Data.setBackgroundColor(BaseColor.DARK_GRAY); 
      Data.setHorizontalAlignment(Element.ALIGN_CENTER); 
      Data.setVerticalAlignment(Element.ALIGN_MIDDLE); 
      Data.setFixedHeight(30f); 
      Data.setBorderWidth(1); 
      table.addCell(Data); 

      String InvoiceDate="Invoice Date"; 
      Data=new PdfPCell(new Phrase(InvoiceDate,FontFactory.getFont(FontFactory.TIMES_BOLDITALIC,10,Font.BOLD,BaseColor.WHITE))); 
      Data.setBackgroundColor(BaseColor.DARK_GRAY); 
      Data.setHorizontalAlignment(Element.ALIGN_CENTER); 
      Data.setVerticalAlignment(Element.ALIGN_MIDDLE); 
      Data.setFixedHeight(30f); 
      Data.setBorderWidth(1); 
      table.addCell(Data); 

      String Cname="Customer Name"; 
      Data=new PdfPCell(new Phrase(Cname,FontFactory.getFont(FontFactory.TIMES_BOLDITALIC,10,Font.BOLD,BaseColor.WHITE))); 
      Data.setBackgroundColor(BaseColor.DARK_GRAY); 
      Data.setHorizontalAlignment(Element.ALIGN_CENTER); 
      Data.setVerticalAlignment(Element.ALIGN_MIDDLE); 
      Data.setFixedHeight(30f); 
      Data.setBorderWidth(1); 
      table.addCell(Data); 

      String GrandTotal="Grand Total"; 
      Data=new PdfPCell(new Phrase(GrandTotal,FontFactory.getFont(FontFactory.TIMES_BOLDITALIC,10,Font.BOLD,BaseColor.WHITE))); 
      Data.setBackgroundColor(BaseColor.DARK_GRAY); 
      Data.setHorizontalAlignment(Element.ALIGN_CENTER); 
      Data.setVerticalAlignment(Element.ALIGN_MIDDLE); 
      Data.setFixedHeight(30f); 
      Data.setBorderWidth(1); 
      table.addCell(Data); 


      String TotalPaid="Total Paid"; 
      Data=new PdfPCell(new Phrase(TotalPaid,FontFactory.getFont(FontFactory.TIMES_BOLDITALIC,10,Font.BOLD,BaseColor.WHITE))); 
      Data.setBackgroundColor(BaseColor.DARK_GRAY); 
      Data.setHorizontalAlignment(Element.ALIGN_CENTER); 
      Data.setVerticalAlignment(Element.ALIGN_MIDDLE); 
      Data.setFixedHeight(30f); 
      Data.setBorderWidth(1); 
      table.addCell(Data); 

      String Balance="Balance"; 
      Data=new PdfPCell(new Phrase(Balance,FontFactory.getFont(FontFactory.TIMES_BOLDITALIC,10,Font.BOLD,BaseColor.WHITE))); 
      Data.setBackgroundColor(BaseColor.DARK_GRAY); 
      Data.setHorizontalAlignment(Element.ALIGN_CENTER); 
      Data.setVerticalAlignment(Element.ALIGN_MIDDLE); 
      Data.setFixedHeight(30f); 
      Data.setBorderWidth(1); 
      table.addCell(Data); 

      String CGtot=" Grand Total :"; 
      Paragraph paraCGtot=new Paragraph(CGtot,FontFactory.getFont(FontFactory.TIMES_BOLDITALIC,12,Font.BOLD,BaseColor.BLACK));    
      paraCGtot.setAlignment(Element.ALIGN_LEFT); 

      String CTotpaid=" Total Paid :"; 
      Paragraph paraCTotpaid=new Paragraph(CTotpaid,FontFactory.getFont(FontFactory.TIMES_BOLDITALIC,12,Font.BOLD,BaseColor.BLACK));   
      paraCTotpaid.setAlignment(Element.ALIGN_LEFT); 

      String Cbalance=" Balance :"; 
      Paragraph paraCbalance=new Paragraph(Cbalance,FontFactory.getFont(FontFactory.TIMES_BOLDITALIC,12,Font.BOLD,BaseColor.BLACK));   
      paraCbalance.setAlignment(Element.ALIGN_LEFT); 

      Rectangle RecColFoot2=new Rectangle(570,80,350,148);//left,bottom,right,top 
      RecColFoot2.setBorder(Rectangle.BOX); 
      RecColFoot2.setBackgroundColor(BaseColor.WHITE); 
      RecColFoot2.setBorderWidth(2); 
      RecColFoot2.setBorderColor(BaseColor.BLACK); 
      canvas.rectangle(RecColFoot2); 

      ColumnText columnFoot2=new ColumnText(canvas); 
      columnFoot2.setSimpleColumn(RecColFoot2); 
      columnFoot2.addElement(paraCGtot); 
      columnFoot2.addElement(paraCTotpaid); 
      columnFoot2.addElement(paraCbalance); 
      columnFoot2.go(); 

      Rectangle RecColFoot3=new Rectangle(450,83,567,145);//left,bottom,right,top 
      RecColFoot3.setBorder(Rectangle.BOX); 
      RecColFoot3.setBackgroundColor(BaseColor.WHITE); 
      RecColFoot3.setBorderWidth(2); 
      RecColFoot3.setBorderColor(BaseColor.WHITE); 
      canvas.rectangle(RecColFoot3); 

      ColumnText columnDatafOOT=new ColumnText(canvas); 
      columnDatafOOT.setSimpleColumn(RecColFoot3); 

      DefaultCategoryDataset myBardataset = new DefaultCategoryDataset(); 


      query="Select * from BillingCustomer where In_Date>='"+fromDate+"' OR In_Date<='"+toDate+"'"; 
      PStat=con.prepareStatement(query); 
      res=PStat.executeQuery(); 
      while(res.next()) 
      { 
       Grand=res.getString("G_Tot"); 
       grand=Double.parseDouble(Grand); 
       grandtotal=grandtotal+grand; 

       totalpaid=res.getString("Tot_Pay"); 
       Total_paid=Double.parseDouble(totalpaid); 
       tot_Paid=tot_Paid+Total_paid; 

       paydue=res.getString("Pay_Due"); 
       PayDue=Double.parseDouble(paydue); 
       Pay_Due=Pay_Due+PayDue; 

       String serialNum=Integer.toString(serialNo); 
       Data=new PdfPCell(new Phrase(serialNum,FontFactory.getFont(FontFactory.TIMES_ITALIC,11,Font.ITALIC,BaseColor.BLACK))); 
       Data.setFixedHeight(30f); 
       Data.setBorderWidth(1); 
       Data.setHorizontalAlignment(Element.ALIGN_CENTER); 
       Data.setVerticalAlignment(Element.ALIGN_MIDDLE); 
       table.addCell(Data); 
       serialNo++; 

       String InvoiceNo=res.getString("In_Code"); 
       Data=new PdfPCell(new Phrase(InvoiceNo,FontFactory.getFont(FontFactory.TIMES_ITALIC,11,Font.ITALIC,BaseColor.BLACK))); 
       Data.setFixedHeight(30f); 
       Data.setBorderWidth(1); 
       Data.setHorizontalAlignment(Element.ALIGN_CENTER); 
       Data.setVerticalAlignment(Element.ALIGN_MIDDLE); 
       table.addCell(Data); 

       String Invoicedate=res.getString("In_Date"); 
       Data=new PdfPCell(new Phrase(Invoicedate,FontFactory.getFont(FontFactory.TIMES_ITALIC,11,Font.ITALIC,BaseColor.BLACK))); 
       Data.setFixedHeight(30f); 
       Data.setBorderWidth(1); 
       Data.setHorizontalAlignment(Element.ALIGN_CENTER); 
       Data.setVerticalAlignment(Element.ALIGN_MIDDLE); 
       table.addCell(Data); 

       String CName=res.getString("C_Name"); 
       Data=new PdfPCell(new Phrase(CName,FontFactory.getFont(FontFactory.TIMES_ITALIC,11,Font.ITALIC,BaseColor.BLACK))); 
       Data.setFixedHeight(30f); 
       Data.setBorderWidth(1); 
       Data.setHorizontalAlignment(Element.ALIGN_CENTER); 
       Data.setVerticalAlignment(Element.ALIGN_MIDDLE); 
       table.addCell(Data); 

       Data=new PdfPCell(new Phrase(Grand,FontFactory.getFont(FontFactory.TIMES_ITALIC,11,Font.ITALIC,BaseColor.BLACK))); 
       Data.setFixedHeight(30f); 
       Data.setBorderWidth(1); 
       Data.setHorizontalAlignment(Element.ALIGN_CENTER); 
       Data.setVerticalAlignment(Element.ALIGN_MIDDLE); 
       table.addCell(Data); 

       Data=new PdfPCell(new Phrase(totalpaid,FontFactory.getFont(FontFactory.TIMES_ITALIC,11,Font.ITALIC,BaseColor.BLACK))); 
       Data.setFixedHeight(30f); 
       Data.setBorderWidth(1); 
       Data.setHorizontalAlignment(Element.ALIGN_CENTER); 
       Data.setVerticalAlignment(Element.ALIGN_MIDDLE); 
       table.addCell(Data); 

       String CPayDue=res.getString("Pay_Due"); 
       Data=new PdfPCell(new Phrase(CPayDue,FontFactory.getFont(FontFactory.TIMES_ITALIC,11,Font.ITALIC,BaseColor.BLACK))); 
       Data.setFixedHeight(30f); 
       Data.setBorderWidth(1); 
       Data.setHorizontalAlignment(Element.ALIGN_CENTER); 
       Data.setVerticalAlignment(Element.ALIGN_MIDDLE); 
       table.addCell(Data);    

      } 
      myBardataset.setValue(new Double(grandtotal), "Total Sales", Integer.toString(fyear)); 

      Paragraph paraCG_Tot=new Paragraph(Double.toString(grandtotal),FontFactory.getFont(FontFactory.TIMES_BOLDITALIC,12,Font.BOLD,BaseColor.BLACK));   
      paraCG_Tot.setAlignment(Element.ALIGN_LEFT); 
      columnDatafOOT.addElement(paraCG_Tot); 
      columnDatafOOT.go(); 

      Paragraph paraCTot_Pay=new Paragraph(Double.toString(tot_Paid),FontFactory.getFont(FontFactory.TIMES_BOLDITALIC,12,Font.BOLD,BaseColor.BLACK));   
      paraCTot_Pay.setAlignment(Element.ALIGN_LEFT); 
      columnDatafOOT.addElement(paraCTot_Pay); 
      columnDatafOOT.go(); 

      Paragraph paraCPay_Due=new Paragraph(Double.toString(Pay_Due),FontFactory.getFont(FontFactory.TIMES_BOLDITALIC,12,Font.BOLD,BaseColor.BLACK));   
      paraCPay_Due.setAlignment(Element.ALIGN_LEFT); 
      columnDatafOOT.addElement(paraCPay_Due); 
      columnDatafOOT.go(); 

      ColumnText columnTable=new ColumnText(writer.getDirectContent()); 
      columnTable.setSimpleColumn(50,380,544,170); 
      columnTable.addElement(table); 
      columnTable.go(); 

      JFreeChart barchart=ChartFactory.createBarChart("Total Sales/Year", "Years", "Total Sales", myBardataset,PlotOrientation.VERTICAL,false,true,false); 
      CategoryPlot plot=barchart.getCategoryPlot(); 
      plot.setRangeGridlinePaint(Color.black); 
      StackedBarRenderer renderer=new StackedBarRenderer(false); 
      renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator()); 
      renderer.setBaseItemLabelsVisible(true); 
      renderer.setBaseItemLabelFont(new Font("Calibri",Font.BOLD,18)); 
      barchart.getCategoryPlot().setRenderer(renderer); 
      renderer.setDrawBarOutline(false); 
      renderer.setSeriesPaint(0, Color.decode("#84002E")); 
      renderer.setBaseItemLabelPaint(Color.white); 

      Rectangle bar=new Rectangle(60,650,330,410);//left,bottom,right,top 
      bar.setBorder(Rectangle.BOX); 
      bar.setBackgroundColor(BaseColor.WHITE); 
      bar.setBorderWidth(2); 
      bar.setBorderColor(BaseColor.BLACK); 
      canvas.rectangle(bar); 

      Rectangle fromdate=new Rectangle(50,700,550,670);//left,bottom,right,top 
      fromdate.setBorder(Rectangle.BOX); 
      fromdate.setBackgroundColor(new BaseColor(31,155,118)); 
      fromdate.setBorderWidth(2); 
      fromdate.setBorderColor(new BaseColor(31,155,118)); 
      canvas.rectangle(fromdate); 

      String Fromdate="From : "+fromDate+"   To : "+toDate+"   "+paradate; 
      Paragraph parafromdate=new Paragraph(Fromdate,FontFactory.getFont(FontFactory.TIMES_BOLDITALIC,14,Font.BOLD,BaseColor.WHITE));   
      parafromdate.setAlignment(Element.ALIGN_CENTER); 

      ColumnText columnfromdate=new ColumnText(canvas); 
      columnfromdate.setSimpleColumn(fromdate); 
      columnfromdate.addElement(parafromdate); 
      columnfromdate.go(); 

      Rectangle bartitle=new Rectangle(570,620,374,650);//left,bottom,right,top 
      bartitle.setBorder(Rectangle.BOX); 
      bartitle.setBackgroundColor(new BaseColor(31,155,118)); 
      bartitle.setBorderWidth(2); 
      bartitle.setBorderColor(new BaseColor(31,155,118)); 
      canvas.rectangle(bartitle); 

      String BarChartTitle="    Sales Report"; 
      Paragraph paraBar=new Paragraph(BarChartTitle,FontFactory.getFont(FontFactory.TIMES_BOLDITALIC,14,Font.BOLD,BaseColor.WHITE));   
      paraBar.setAlignment(Element.ALIGN_CENTER); 
      ColumnText columnDate=new ColumnText(writer.getDirectContent()); 
      columnDate.setSimpleColumn(bartitle); 
      columnDate.setText(paraBar); 
      columnDate.go(); 

      int width=450; 
      int height=400; 

      File Barchart=new File("BarChart.png"); 
      ChartUtilities.saveChartAsPNG(Barchart, barchart, width, height); 

      String imageBar="BarChart.png"; 
      Image imgbar=Image.getInstance(imageBar); 
      imgbar.scaleToFit(400, 200); 
      imgbar.setAbsolutePosition(80, 430); 
      canvas.addImage(imgbar); 

      document.close(); 
      res.close(); 
      PStat.close(); 

      JOptionPane.showMessageDialog(null, "Report Generated"); 
     } 
     catch(Exception e) 
     { 
      JOptionPane.showMessageDialog(null, e); 
     } 
    } 

    /** 
    * Initialize the contents of the frame. 
    */ 
    private void initialize() { 
     try 
     { 
      UIManager.setLookAndFeel(new WebLookAndFeel()); 
     } 
     catch(Exception e) 
     { 
      e.printStackTrace(); 
     } 
     frmSalesReport = new JFrame(); 
     frmSalesReport.setTitle("Sales Report"); 
     frmSalesReport.setBounds(100, 100, 450, 358); 
     frmSalesReport.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frmSalesReport.getContentPane().setLayout(null); 

     JPanel panel = new JPanel(); 
     panel.setLayout(null); 
     panel.setBorder(new LineBorder(new Color(0, 0, 0), 1, true)); 
     panel.setBackground(new Color(0, 116, 90)); 
     panel.setBounds(10, 11, 414, 49); 
     frmSalesReport.getContentPane().add(panel); 

     JLabel lblSalesReport = new JLabel("Sales Report"); 
     lblSalesReport.setHorizontalAlignment(SwingConstants.CENTER); 
     lblSalesReport.setForeground(Color.WHITE); 
     lblSalesReport.setFont(new Font("Tahoma", Font.BOLD, 15)); 
     lblSalesReport.setBounds(10, 15, 394, 20); 
     panel.add(lblSalesReport); 

     JPanel panel_1 = new JPanel(); 
     panel_1.setBorder(new TitledBorder(null, "Search By Invoice Date", TitledBorder.LEADING, TitledBorder.TOP, null, Color.BLACK)); 
     panel_1.setBounds(10, 71, 414, 156); 
     frmSalesReport.getContentPane().add(panel_1); 
     panel_1.setLayout(null); 

     JLabel lblNewLabel = new JLabel("From :"); 
     lblNewLabel.setBounds(10, 31, 46, 14); 
     panel_1.add(lblNewLabel); 

     FromDate = new JDateChooser(); 
     FromDate.setBounds(10, 56, 161, 25); 
     panel_1.add(FromDate); 

     JLabel lblTo = new JLabel("To :"); 
     lblTo.setBounds(243, 31, 46, 14); 
     panel_1.add(lblTo); 

     ToDate = new JDateChooser(); 
     ToDate.setBounds(243, 56, 161, 25); 
     panel_1.add(ToDate); 

     JButton ViewReport1 = new JButton("View Report 1"); 
     ViewReport1.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent arg0) { 
       GenerateReport(); 
      } 
     }); 
     ViewReport1.setIcon(new ImageIcon("C:\\Users\\Mdazaz\\workspace\\InventorySystem\\Images\\Bullish_48px.png")); 
     ViewReport1.setBounds(30, 105, 126, 32); 
     panel_1.add(ViewReport1); 

     JButton ViewReport2 = new JButton("View Report 2"); 
     ViewReport2.setIcon(new ImageIcon("C:\\Users\\Mdazaz\\workspace\\InventorySystem\\Images\\Pie Chart_40px.png")); 
     ViewReport2.setBounds(259, 105, 126, 32); 
     panel_1.add(ViewReport2); 

     JPanel panel_2 = new JPanel(); 
     panel_2.setBorder(new LineBorder(new Color(0, 0, 0), 1, true)); 
     panel_2.setBounds(10, 232, 414, 70); 
     frmSalesReport.getContentPane().add(panel_2); 
     panel_2.setLayout(null); 

     JButton Reset = new JButton("Reset"); 
     Reset.setIcon(new ImageIcon("C:\\Users\\Mdazaz\\workspace\\InventorySystem\\Images\\Refresh_40px.png")); 
     Reset.setBounds(62, 18, 126, 32); 
     panel_2.add(Reset); 

     JButton Close = new JButton("Close"); 
     Close.setIcon(new ImageIcon("C:\\Users\\Mdazaz\\workspace\\InventorySystem\\Images\\Close Window_48px.png")); 
     Close.setBounds(238, 18, 126, 32); 
     panel_2.add(Close); 
    } 
} 

+1

vous êtes question est incompatible. Le sujet indique que vous voulez qu'une nouvelle page soit créée automatiquement (vous voulez que iText prenne le contrôle pour créer une mise en page). Le code dans le corps de votre question indique que vous ne voulez pas qu'une nouvelle page soit créée (vous prenez le contrôle de la disposition). Vous ne pouvez pas avoir les deux. Si vous voulez que le contenu restant dans 'ColumnText' soit * consommé *, vous devez vous-même déclencher' document.newPage() ', créer un nouveau rectangle pour la colonne, et aussi longtemps que' ColumnText.hasMoreText (columnTable .go()); ' –

+0

Comment le faire donner un morceau de code source. –

+0

Voir mon commentaire précédent. Il contient les morceaux de code dont vous avez besoin. Ajoutez simplement ces extraits. –

Répondre

0

Ceci est la réponse de ma question:

 `ColumnText columnTable=new ColumnText(writer.getDirectContent()); 
     columnTable.setSimpleColumn(50,170,544,380); 
     columnTable.addElement(table); 
     int status=columnTable.go(); 
     while(columnTable.hasMoreText(status)) 
     { 
      Footer();//before leaving the page add footer in current page 
      document.newPage();//create a new page 
      Header();//adding header to new page 
      putDate();//adding date to new page 
      columnTable.setSimpleColumn(50,650,544,150);// adding position of table in new page 
      status=columnTable.go();//start to paste all table data 
      Footer();// before leaving the new page add footer on current page/new page 
     }`