Whatever you do with PdfContentByte will never cause a new page. If you have a new page it was caused by the Document.add().
> -----Original Message----- > From: Jim Owen [mailto:[EMAIL PROTECTED] > Sent: Thursday, November 18, 2004 10:35 PM > To: Paulo Soares; [EMAIL PROTECTED] > Subject: RE: [iText-questions] Help on graphics/text placement > > Thanks Paulo. > > What is a better approach to this? I was using existing code > to clone new > methods, but I can certainly do something different. > > Also, I'm not sure what relevance getVerticalPosition() has > to sorting out > the original issue. From the javadocs, it simply returns a > current page > position. What would I do with it then? > > Regards, > > Jim > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On > Behalf Of Paulo > Soares > Sent: Thursday, November 18, 2004 2:37 AM > To: Jim Owen; [EMAIL PROTECTED] > Subject: RE: [iText-questions] Help on graphics/text placement > > Mixing Document.add() and PdfContentByte can result in > serious risks to > your health. Use the latest version and > PdfWriter.getVerticalPosition(). > It's safer but it still can fail. > > > -----Original Message----- > > From: [EMAIL PROTECTED] > > [mailto:[EMAIL PROTECTED] On > > Behalf Of Jim Owen > > Sent: Wednesday, November 17, 2004 10:49 PM > > To: [EMAIL PROTECTED] > > Subject: [iText-questions] Help on graphics/text placement > > > > Hi, > > > > I've run into a problem where I'm getting an extra page in a > > generated PDF file that contains images that I expected to be > > placed on the > > prior page. In other words, I output a bunch of text, then > > place graphics > > on the page with a PdfContentByte. I'm ending up with the > > text on one page > > and the graphics following on the next. > > > > It's probably something pretty simple, but I've bashed > > on it long > > enough. > > > > Here's the code with a lot of pseudo-code for simplicity: > > > > Any help would be appreciated. > > > > Regards, > > > > Jim > > > > // Get an input file reader - just a text file > > BufferedReader in = new BufferedReader(new FileReader( > > inputFilename )); > > PdfWriter writer = null; > > > > // Get the first line and start processing > > String inputLine = in.readLine(); > > while ( inputLine != null ) > > { > > // Check if we are starting a new statement from the file. > > // Find out if this line is an placeholder for a new > > statement. Get > > // output file name from the line. > > // If starting a new statement, then need to finalize the prior > > > > // statement. > > If ( newStatement ) > > { > > // Place images on page since we just finished > some other > > // statement. With special handing for first > > page. But > > // want to do this before next page so images are > > // placed on the correct page. > > PdfContentByte cb = writer.getDirectContent(); > > // Get the image > > buffImage = (BufferedImage)eImages.nextElement(); > > // Now get a document image > > Image image = Image.getInstance(buffImage, null); > > // Calculate a value for x and y and set it in the image. > > image.setAbsolutePosition(xPos, yPos ); > > // Add the image to the output. > > cb.addImage(image); > > // Null the reference > > cb = null; > > // close the document now > > document.close(); > > } > > // Now Start a new document > > document = new Document(PageSize.LETTER ); > > // Open the output writer > > writer = PdfWriter.getInstance(document, new > FileOutputStream( > > pdfFile )); > > // Set some preferences > > // Open the document > > document.open(); > > > > // Init some values > > currLine = 0; > > } > > // Check if we have a signature position > > // If we have one, then store the image into the vector or later > > processing > > > > // Now output the line to the document. > > inputLine += "\n"; > > Phrase p = new Phrase( inputLine, > > FontFactory.getFont(FontFactory.COURIER, 10, Font.NORMAL, new > > Color(0, 0, > > 0))); > > // Add the phrase to the document. > > document.add( p ); > > > > // Now check if we are at the end of a page in the statement > > // We'll need to output the images, if so. > > // Do all the same stuff here as when we start a new statement > > except call newPage(); > > document.newPage(); > > > > // Read the next line. > > inputLine = in.readLine(); > > } > > > > // Close up stuff > > in.close(); > > in = null; > > > > // See if there is anything to output on the final page and > > output it if > > so. > > // Close the document. > > document.close(); > > > > > > > > ------------------------------------------------------- > > This SF.Net email is sponsored by: InterSystems CACHE > > FREE OODBMS DOWNLOAD - A multidimensional database that combines > > robust object and relational technologies, making it a perfect match > > for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 > > _______________________________________________ > > iText-questions mailing list > > [EMAIL PROTECTED] > > https://lists.sourceforge.net/lists/listinfo/itext-questions > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: InterSystems CACHE > FREE OODBMS DOWNLOAD - A multidimensional database that combines > robust object and relational technologies, making it a perfect match > for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 > _______________________________________________ > iText-questions mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/itext-questions > > ------------------------------------------------------- This SF.Net email is sponsored by: InterSystems CACHE FREE OODBMS DOWNLOAD - A multidimensional database that combines robust object and relational technologies, making it a perfect match for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 _______________________________________________ iText-questions mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/itext-questions
