Help with PdfContentByte 2005-06-27 - By Hanes Jedidiah A1C AU/SCIE
Back Please help.
I'm using PdfContentByte to position text (which are variables filled from a list) on my screen. They are basically name plates with two per page. Problem is only the last page is showing up ... its like the contentbyte is overwritten... how do i stop this from happening. If I take away the new page command the loop works fine, just writes on top of itself on one page. When I have the new page in there it does crazy stuff... like blank pages and even one page that is set at zoom 4444% or something.
Sample code:
for (int i=0; i < students.size(); i++)
{
//Grab student
StudentPerson student = (StudentPerson) students.get(i);
String lname = student.getLastName();
String fname = student.getFirstName();
String service = student.getServiceComponent()
String borderTop= "__ ____ ____ ____ ____ _____";
String borderBottom = "BLABLABAHABLAHABALHABLA";
PdfContentByte cb = writer.getDirectContent();
BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
cb.beginText();
if(topRecord == true)
{
sealDod.setAbsolutePosition(25, 350);
sealDod.scaleAbsolute(200, 200);
addElement(sealDod);
cb.setFontAndSize(bf, 24);
cb.showTextAligned(PdfContentByte.ALIGN_CENTER, fname, 500, 425, 0);
cb.showTextAligned(PdfContentByte.ALIGN_CENTER, lname, 500, 375, 0);
cb.showTextAligned(PdfContentByte.ALIGN_LEFT, service, 25, 350, 0);
cb.setFontAndSize(bf, 18);
cb.showTextAligned(PdfContentByte.ALIGN_CENTER, borderTop, 475, 350, 0);
cb.showTextAligned(PdfContentByte.ALIGN_CENTER, borderBottom, 475, 325, 0);
topRecord = false;
}
else
{
sealDod.setAbsolutePosition(25, 50);
sealDod.scaleAbsolute(200, 200);
addElement(sealDod);
cb.setFontAndSize(bf, 24);
cb.showTextAligned(PdfContentByte.ALIGN_CENTER, fname, 500, 125, 0);
cb.showTextAligned(PdfContentByte.ALIGN_CENTER, lname, 500, 75, 0);
cb.showTextAligned(PdfContentByte.ALIGN_LEFT, service, 25, 50, 0);
cb.setFontAndSize(bf, 18);
cb.showTextAligned(PdfContentByte.ALIGN_CENTER, borderTop, 475, 50, 0);
cb.showTextAligned(PdfContentByte.ALIGN_CENTER, borderBottom, 475, 25, 0);
topRecord = true;
}
cb.endText();
//Every 2 records create a new page
if(i % 2 == 1)
{
//Then create new page
//newPage();
}
}
closeDocument();
Thanks
<html>
<head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 10 (filtered)">
<style> <!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0in; margin-bottom:.0001pt; font-size:12.0pt; font-family:"Times New Roman";} a:link, span.MsoHyperlink {color:blue; text-decoration:underline;} a:visited, span.MsoHyperlinkFollowed {color:purple; text-decoration:underline;} span.EmailStyle17 {font-family:Arial; color:windowtext;} @(protected) Section1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in;} div.Section1 {page:Section1;} --> </style>
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'>Please help.</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'>I'm using PdfContentByte to position text (which are variables filled from a list) on my screen. They are basically name plates with two per page. Problem is only the last page is showing up ... its like the contentbyte is overwritten... how do i stop this from happening. If I take away the new page command the loop works fine, just writes on top of itself on one page. When I have the new page in there it does crazy stuff... like blank pages and even one page that is set at zoom 4444% or something.</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> </span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'>Sample code:</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> </span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'>for (int i=0; i < students.size(); i++)</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> {</span></font>< /p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> //Grab student</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> StudentPerson student = (StudentPerson) students.get(i);</span></font></p >
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> String lname = student.getLastName();</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> String fname = student.getFirstName();</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> String service = student.getServiceComponent()</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> String borderTop= "__ ____ ____ ____ ____ _____";</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> String borderBottom = "BLABLABAHABLAHABALHABLA";</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> </span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> PdfContentByte cb = writer.getDirectContent(); </span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> cb.beginText();</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> </span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> if(topRecord == true)</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> {</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> sealDod .setAbsolutePosition(25, 350);</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> sealDod.scaleAbsolute(200 , 200);</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> addElement(sealDod);< /span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> cb.setFontAndSize(bf, 24) ;</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> cb.showTextAligned (PdfContentByte.ALIGN_CENTER, fname, 500, 425, 0);</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> cb.showTextAligned (PdfContentByte.ALIGN_CENTER, lname, 500, 375, 0);</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> cb.showTextAligned (PdfContentByte.ALIGN_LEFT, service, 25, 350, 0);</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> cb.setFontAndSize(bf, 18) ;</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> cb.showTextAligned (PdfContentByte.ALIGN_CENTER, borderTop, 475, 350, 0);</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> cb.showTextAligned (PdfContentByte.ALIGN_CENTER, borderBottom, 475, 325, 0);</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> topRecord = false;</span> </font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> }</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> else</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> {</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> sealDod .setAbsolutePosition(25, 50);</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> sealDod.scaleAbsolute(200 , 200);</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> addElement(sealDod);< /span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> cb.setFontAndSize(bf, 24) ;</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> cb.showTextAligned (PdfContentByte.ALIGN_CENTER, fname, 500, 125, 0);</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> cb.showTextAligned (PdfContentByte.ALIGN_CENTER, lname, 500, 75, 0);</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> cb.showTextAligned (PdfContentByte.ALIGN_LEFT, service, 25, 50, 0);</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> cb.setFontAndSize(bf, 18) ;</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> cb.showTextAligned (PdfContentByte.ALIGN_CENTER, borderTop, 475, 50, 0);</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> cb.showTextAligned (PdfContentByte.ALIGN_CENTER, borderBottom, 475, 25, 0);</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> topRecord = true;</span>< /font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> }</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> cb.endText();</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> </span></font></p>
<p class=MsoNormal style='text-indent:.5in'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>//Every 2 records create a new page< /span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> if(i % 2 == 1)</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> {</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> //Then create new page</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> //newPage();</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'>   ; }</span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt; font-family:Arial'> }< /span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size: 12.0pt'>closeDocument();</span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size: 12.0pt'> </span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size: 12.0pt'> </span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size: 12.0pt'>Thanks</span></font></p>
</div>
</body>
</html>
|
|