title: How to create a PDF with multiple pages from a Graphics object with Java and itext
body: <p>I have an abstract class  with an abstract method draw(Graphics2D g2), and the methods print(), showPreview(), printPDF(). For each document in my Java program, I implement draw(), so I can print, show preview and create a PDF file for each document.
  My problem is how to create a PDF with multiple pages from that Graphics object.
  I solved it by creating a PDF file for each page, and then merge the files into one new file. But there must be a better way.
  I have following code to create PDF with one page:</p>
  
  <pre><code>public void printPDF1(){
      JFileChooser dialog = new JFileChooser();
      String filePath = "";
      int dialogResult = dialog.showSaveDialog(null);
      if (dialogResult==JFileChooser.APPROVE_OPTION){
          filePath = dialog.getSelectedFile().getPath();
      }
      else return;
      try {
          Document document = new Document(new Rectangle(_pageWidth, _pageHeight));
          PdfWriter writer = PdfWriter.getInstance(document,
                  new FileOutputStream(filePath));
          document.open();
  
          PdfContentByte cb = writer.getDirectContent();
          g2 = cb.createGraphics(_pageWidth, _height);
          g2.translate(0, (_numberOfPages - _pageNumber) * _pageHeight);
          draw(g2);
          g2.dispose();
          document.close();
      } 
      catch (Exception e2) {
          System.out.println(e2.getMessage());
      }
  }
  </code></pre>