title: Generating pdftable with dynamic content using iText in android
body: <p>I am generating <code>pdf</code> in android using <code>itext</code> library.Format of pdf is shown in image 
  <a href="https://i.stack.imgur.com/2jdoX.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/2jdoX.png" alt="enter image description here"></a>
  Approach i am using to generate this format is using <code>Pdfptable</code>.</p>
  
  <p>The description tag is dynamic means it can be of multiple lines. when description tag is of 4-5 line every thing is perfect but if it is of half page the PDF doesn't look nice because of all the unnecessary white space; see <a href="https://www.dropbox.com/s/sctfw97uyqpe2eg/sample.pdf?dl=0" rel="nofollow noreferrer">sample.pdf</a>.</p>
  
  <pre><code>// TODO Auto-generated method stub
  
              Document document = new Document(PageSize.A4);
              File f  = null;
              try {
  
                  f  = createFile("sample.pdf");
  
                  FileOutputStream ficheroPdf = new FileOutputStream(
                          f.getAbsolutePath());
  
                  PdfWriter writer = PdfWriter.getInstance(document, ficheroPdf);
  
  
                  document.open();
  
  
  
                  /*LineSeparator line = new LineSeparator(1, 100, null, Element.ALIGN_CENTER, -2);
                  paragraph.add(line);*/
  
  
                  ArrayList&lt;SampleModel&gt; movies = new ArrayList&lt;SampleModel&gt;(15);
                  for (int i = 0; i &lt; 13; i++) {
                      movies.add(new SampleModel());
                  }
                  for (int j = 0; j &lt; movies.size(); j++) {
  
                      Bitmap bitmap = BitmapFactory.decodeResource(mActivity.getResources(),
                              movies.get(j).getDrawableId());
  
                      ByteArrayOutputStream stream = new ByteArrayOutputStream();
                      bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
                      Image img = Image.getInstance(stream.toByteArray());
                      img.setAlignment(Image.LEFT | Image.TEXTWRAP);
                      img.setBorder(Image.BOX);
                      img.setBorderWidth(20);
                      img.setBorderColor(Color.WHITE);
                      img.scaleAbsolute(200f, 200f);
  
                      //table with 2 columns
                      PdfPTable table = new PdfPTable(2);
  
                      table.setHorizontalAlignment(Element.ALIGN_LEFT);
                      table.getDefaultCell().setBorder(Rectangle.NO_BORDER);
  
  
                      PdfPCell cell = new PdfPCell(img);
                      cell.setVerticalAlignment(Element.ALIGN_TOP);
                      cell.setBorderColor(new Color(16777215));
                      cell.setRowspan(5);
                      table.addCell(cell);
  
                      table.addCell(new Paragraph(" Snag Name"));
                      table.addCell(new Paragraph(" Date           : 25 Aug 2015"));
                      table.addCell(new Paragraph(" Sub Contractor : Test company 2"));
                      table.addCell(new Paragraph(" Status         : Completed"));
                      table.addCell(new Paragraph(" Description    : Description Description Description Description Description Description Description Description Description Description Description Description "
                              + "Description"
                              + "Description"
                              + "Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description Description" ));
  
                      document.add(table);
  
  
                      // add line seperator
                      document.add(Chunk.NEWLINE);
                      LineSeparator line = new LineSeparator(1, 100, null, Element.ALIGN_CENTER, -2);
                      document.add(line);
                      document.add(Chunk.NEWLINE);
  
                  }
  
  
                  Toast.makeText(mActivity, "Pdf generated", Toast.LENGTH_SHORT).show();
  
              } catch (DocumentException e) {
  
                  Log.e("pdf error", e.getMessage());
  
              } catch (IOException e) {
  
                  Log.e("pdf error", e.getMessage());
  
              } finally {
  
  
                  document.close();
                  try {
                      File file   = f;
                      Intent intent = new Intent(Intent.ACTION_VIEW);
                      intent.setDataAndType(Uri.fromFile(file), "application/pdf");
                      intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
                      startActivity(intent);
  
                  } 
                  catch (ActivityNotFoundException e){
                      Toast.makeText(mActivity, "No app found to open pdf", Toast.LENGTH_SHORT).show();
                  }
                  catch (Exception e) {
                      // TODO: handle exception
  
                      Toast.makeText(mActivity, "Exception", Toast.LENGTH_SHORT).show();
                  }
  
              }
          `
  </code></pre>
  
  <p>After introducing <code>setSplitLate()</code>, my PDF looks like this <a href="https://www.dropbox.com/s/oi66h04airv7l4t/sample_new.pdf?dl=0" rel="nofollow noreferrer">sample_new.pdf</a> and that's not satisfactory either.</p>