Hi !

I have following dilemma:

I want to add som content to a PDF say a table, after the table i need to have 2 columns of text that only have limited space to reside in. If this text fills the determined area i need to replace the text with "see appendix" and the move all of the text to another page in this document.
Which is the best way to solve this problem ? In the example below i've used MultiColumnText, is this the right way to go or should i use PdfPTable ?


Extra questions :
Is it possbile to make a table split text between columns?
Is it possible to make a table to split between pages but not the following page (appendix or some such)


When i was browsing the site i found following code snippet here (http://itextdocs.lowagie.com/tutorial/objects/columns/index.html#introduction)

while (mct.hasMoreText()) {
   document.add(mct);
   mct.nextColumn();
   document.newPage();
}

(mct.hasMoreText()) is not a member of MultiColumnText right ?

Code Example :


import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.Phrase; import com.lowagie.text.pdf.MultiColumnText; import com.lowagie.text.pdf.PdfPTable; import com.lowagie.text.pdf.PdfWriter; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.OutputStream;



public class TestMultiColumn{
private String lorem = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum tincidunt sem tincidunt sem. Nulla mattis, elit vitae ultricies egestas, turpis pede feugiat justo, non ullamcorper sapien magna ac ante. Maecenas bibendum aliquam nulla. In sed diam. Suspendisse potenti. Etiam eu mauris non ipsum vehicula bibendum. Etiam adipiscing odio quis libero. Nulla facilisi. In euismod massa et magna. Suspendisse vel nisl iaculis massa accumsan fringilla. Mauris cursus, nunc id lacinia pharetra, elit dui accumsan urna, sed euismod risus sapien non augue. Vivamus eget orci facilisis leo scelerisque vestibulum. Nullam condimentum. Mauris in diam. Duis eu purus sed felis auctor porta. Vivamus tristique. Quisque et sapien. Aliquam sed metus.Sed eget enim eget ligula ullamcorper viverra. Nulla congue. In lorem urna, tempus mattis, ornare vitae, porttitor sed, eros. Morbi nec purus sed odio ultrices egestas. Morbi vitae mi. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed non sem ac mi euismod imperdiet. Etiam wisi massa, lobortis non, tristique in, eleifend a, pede. Integer dolor pede, ultrices at, faucibus volutpat, mattis eu, lacus. Mauris semper. Etiam adipiscing elit sed est.Cras nec velit. Duis egestas augue sit amet lectus. Phasellus purus diam, molestie eu, vestibulum at, feugiat eu, felis. Proin dictum elit. Quisque molestie. Aliquam dapibus justo a mi. Vivamus lobortis lorem non turpis. Fusce vulputate justo. Phasellus eu enim sit amet massa iaculis imperdiet. Suspendisse blandit diam quis mi. Nunc vel risus nec mi sodales tristique. Praesent lobortis, augue et sagittis mollis, elit arcu adipiscing risus, luctus pharetra libero risus et est. Nullam eu orci. Praesent pretium, tellus at facilisis egestas, pede est faucibus leo, sit amet blandit erat nisl tristique risus. Aliquam elementum elit et leo. Donec facilisis ipsum nec erat. Nunc consectetuer cursus purus. Mauris non diam.Nam odio wisi, luctus a, euismod eget, ultricies id, nulla. Quisque eget neque vel pede lobortis porttitor. Phasellus id massa. Etiam tristique. Vestibulum viverra elementum lacus. Maecenas dignissim, enim non vulputate ultricies, metus purus lobortis elit, sed iaculis lectus orci rhoncus urna. Suspendisse ullamcorper, nibh et aliquam vehicula, tellus dolor aliquet pede, ut ornare dolor mauris eget diam. Curabitur mattis risus nec erat. Curabitur viverra ante ac libero. Sed accumsan. Sed diam wisi, vulputate sed, lobortis non, congue vel, turpis. Nulla arcu neque, tempor ac, varius ac, vehicula at, orci. Duis at magna sed dolor feugiat semper. Suspendisse potenti. Curabitur eleifend enim eu justo.Suspendisse at purus quis sem sodales vestibulum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque rutrum viverra ipsum. Aliquam neque nibh, placerat vitae, varius non, facilisis at, ante. Vestibulum est ligula, hendrerit non, porta quis, ullamcorper et, neque. Curabitur eu dolor vitae dui pharetra consectetuer. Vivamus iaculis tellus sit amet elit. Suspendisse elementum, metus et dapibus accumsan, urna sapien porttitor lacus, a condimentum libero tortor sed massa. In aliquam, urna vel rutrum laoreet, ligula lectus porttitor lacus, nec placerat ipsum sem a nulla. Integer purus. Sed vel mi at erat ultrices mattis. Aliquam mauris felis, luctus vel, fermentum sed, conseq";
public TestMultiColumn() {
try {
Document document = new Document(PageSize.A4,34, 34, 20, 68);
OutputStream out = new FileOutputStream("TestMultiColumn.pdf");
PdfWriter.getInstance(document, out);
document.open();
document.add(getTable());


MultiColumnText mct = new MultiColumnText(100f); mct.addRegularColumns(document.left(), document.right(), 10f, 2); mct.addElement(new Paragraph(lorem));


if (mct.isOverflow()){ document.add(new Phrase("see appendix"));
}else{
document.add(mct);
} document.add(getTable());
if(mct.isOverflow()){
document.newPage();
document.add(new Phrase("This should be the appendix"));
}
document.close();
} catch (DocumentException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new TestMultiColumn();
}
private PdfPTable getTable(){
PdfPTable table = new PdfPTable(6);
for(int i = 0 ;i < 18 ;i++){
table.addCell(i+"");
}
table.setWidthPercentage(100);
return table;
}
}
//end code example


Regards

Janne Berg





-------------------------------------------------------
This SF.Net email is sponsored by Oracle Space Sweepstakes
Want to be the first software developer in space?
Enter now for the Oracle Space Sweepstakes!
http://ads.osdn.com/?ad_idt12&alloc_id344&op=click
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

Reply via email to