I am having vertical alignment issues when generating PDF documents. The data which is dynamic in format must fit on N sheets of 8.5X11. Each 33 lines of data must fit on the upper or lower 1/2 of the page with a perforation in the middle of the page. Will tables/cells help me achieve the proper vertical alignment I desire? I was considering a 1 column table and each 1/2 page of data could be a cell. I was hoping I could use absolute position on each cell ( 1/2 page).
Document document = new Document(PageSize.A4, 0, 0, 0, 0);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Font dataFont = new Font(Font.COURIER, 12);
Font headerFont = new Font(Font.COURIER, 7);
try {
PdfWriter pdfWriter = PdfWriter.getInstance(document,
baos);
document.open();
PdfContentByte cb = pdfWriter.getDirectContent();
List<BPEVRPage> pages =
STXMLGenerator.getRegDocument((STRegTransaction)
getRegTransaction());
int formCount = 0;
bpevrPage:
for (BPEVRPage page:pages) {
for (Form form:page.getFormsList()) {
while (form.getLinesList().size() <33) {
Line line = new Line();
LineSection lineSection = new
LineSection();
lineSection.setLineSectionType(LineSection.DATA);
lineSection.setLineSectionData(" ");
line.addLineSection(lineSection);
form.addLine(line);
}
if (formCount>=2 && formCount%2==0){
document.newPage();
logger.fine("ADDING NEW PAGE");
}
for (Line line:form.getLinesList()) {
Paragraph para = new
Paragraph();
para.setLeading(0, 0.85f);
para.setIndentationLeft(12f);
para.setIndentationRight(12f);
for (LineSection
section:line.getLineSections()) {
logger.fine("formCount
"+ formCount+" line section data 1 header 2
"+section.getLineSectionType() + " " + section.getLineSectionData());
if
(section.getLineSectionType()==LineSection.DATA) {
if
(STDocumentTypeFactory.CA_REGDOC_NODMVCOPY.equals(docType) &&
section.getLineSectionData().contains(DMV_FILE_COPY_TOKEN)) {
break
bpevrPage;
}
Phrase phrase =
new Phrase(section.getLineSectionData(), dataFont);
para.add(phrase);
} else if
(section.getLineSectionType()==LineSection.HEADER) {
Phrase phrase =
new Phrase(section.getLineSectionData(),
headerFont);
para.add(phrase);
} else if
(section.getLineSectionType()==LineSection.CUSTOMER_BARCODE) {
// CODE 39
Paragraph
paraCustomer = new Paragraph();
paraCustomer.setSpacingBefore(18); //set spacing prior bar code 1/4
inch
paraCustomer.setSpacingAfter(0);
paraCustomer.setIndentationLeft((float) 166);
Barcode39
code39Customer = new Barcode39();
code39Customer.setBarHeight((float) 36);
code39Customer.setSize((float) 4.75);
code39Customer.setCode(section.getLineSectionData());
code39Customer.setAltText("");
// Image image =
code39Customer.createImageWithBarcode(cb, null,
null);
// if
(formCount%2==0) {
//
image.setAbsolutePosition(144f, 468f); //5.5 inches from bottom
// } else {
//
image.setAbsolutePosition(144f, 720f); //10 inches from bottom
// }
//
paraCustomer.add(image);
paraCustomer.add(code39Customer.createImageWithBarcode(cb, null,
null));
document.add(paraCustomer);
} else if
(section.getLineSectionType()==LineSection.DMV_BARCODE) {
// CODE 39
Paragraph
paraDMV = new Paragraph();
paraDMV.setSpacingAfter(0);
paraDMV.setIndentationLeft((float) 144);
Barcode39
code39DMV = new Barcode39();
code39DMV.setBarHeight((float) 36);
code39DMV.setSize((float) 3.75);
code39DMV.setCode(section.getLineSectionData());
code39DMV.setTextAlignment(Element.ALIGN_LEFT);
// Image image =
code39DMV.createImageWithBarcode(cb, null, null);
// if
(formCount%2==0) {
//
image.setAbsolutePosition(144f, 468f); //5.5 inches from bottom
// } else {
//
image.setAbsolutePosition(144f, 720f); //10 inches from bottom
// }
//
paraDMV.add(image);
paraDMV.add(code39DMV.createImageWithBarcode(cb, null, null));
document.add(paraDMV);
}
}//line section
document.add(para);
}//line
formCount++;
}//form
}//page
document.close();
} catch (DocumentException e) {
e.printStackTrace();
// } catch (FileNotFoundException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
}
return baos.toByteArray();
}
--
View this message in context:
http://itext.2136553.n4.nabble.com/Tables-for-vertical-alignment-tp4660877.html
Sent from the iText mailing list archive at Nabble.com.
------------------------------------------------------------------------------
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions
iText(R) is a registered trademark of 1T3XT BVBA.
Many questions posted to this list can (and will) be answered with a reference
to the iText book: http://www.itextpdf.com/book/
Please check the keywords list before you ask for examples:
http://itextpdf.com/themes/keywords.php
