Font anchorFont = new Font(5, 9);
Chunk ck = new Chunk("http://www.yahoo.com",anchorFont);
ck.setAnchor("http://www.yahoo.com");
ref = new Paragraph("link: ");
ref.add(ck);----- Original Message ----- From: "Paul Krasucki" <[EMAIL PROTECTED]> To: "Paulo Soares" <[EMAIL PROTECTED]>; <[email protected]> Sent: Sunday, January 09, 2005 1:33 PM Subject: Re: [iText-questions] anchor in a template > Thanks for your response. If the example were working > with anchors, it would solve the problem, but it > doesn't: the same anchor object when added directly to > the document creates a correct link, if used in the > table, it is just a plain text. > Here is code example (simplified > headers_watermarks.java, I removed image, watermark > etc to make code shorter). > > import java.io.*; > import com.lowagie.text.*; > import com.lowagie.text.pdf.*; > > public class headers_and_watermarks extends > PdfPageEventHelper { > > public Image headerImage; > public PdfPTable table; > public PdfTemplate tpl; > public BaseFont helv; > private static Paragraph ref; > > { > Anchor anchor = new > Anchor("http://www.yahoo.com",anchorFont); > Font anchorFont = new Font(5, 9); > anchor.setReference("http://www.yahoo.com"); > anchor.setName("http://www.yahoo.com"); > ref = new Paragraph("link: "); > ref.add(anchor); > } > > public static void main(String args[]) { > try { > Document doc = new Document(PageSize.A4, > 50, 50, 100, 72); > PdfWriter writer = > PdfWriter.getInstance(doc, new > FileOutputStream("c:\\headers_and_watermarks.pdf")); > PdfPageEvent pageEvent = new > headers_and_watermarks(); > writer.setPageEvent(pageEvent); > doc.open(); > String text = "some padding text "; > for (int k = 0; k < 5; ++k) > text += text; > Paragraph p = new Paragraph(text); > p.setAlignment(Element.ALIGN_JUSTIFIED); > doc.add(p); > doc.add(ref); > doc.close(); > System.out.println("Finished."); > } > catch ( Exception e ) { > e.printStackTrace(); > } > } > > public void onOpenDocument(PdfWriter writer, > Document document) { > try { > table = new PdfPTable(1); > table.addCell(ref); > tpl = > writer.getDirectContent().createTemplate(100, 100); > tpl.setBoundingBox(new Rectangle(-20, -20, > 100, 100)); > helv = BaseFont.createFont("Helvetica", > BaseFont.WINANSI, false); > } > catch(Exception e) { > throw new ExceptionConverter(e); > } > } > > public void onEndPage(PdfWriter writer, Document > document) { > PdfContentByte cb = writer.getDirectContent(); > cb.saveState(); > table.setTotalWidth(document.right() - > document.left()); > table.writeSelectedRows(0, -1, > document.left(), document.getPageSize().height() - 50, > cb); > String text = "Page " + writer.getPageNumber() > + " of "; > float textSize = helv.getWidthPoint(text, 12); > float textBase = document.bottom() - 20; > cb.beginText(); > cb.setFontAndSize(helv, 12); > cb.setTextMatrix(document.left(), textBase); > cb.showText(text); > cb.endText(); > cb.addTemplate(tpl, document.left() + > textSize, textBase); > } > > public void onCloseDocument(PdfWriter writer, > Document document) { > tpl.beginText(); > tpl.setFontAndSize(helv, 12); > tpl.setTextMatrix(0, 0); > tpl.showText("" + (writer.getPageNumber() - > 1)); > tpl.endText(); > } > } > > --- Paulo Soares <[EMAIL PROTECTED]> wrote: > > > Have a look at the example > > headers_and_watermarks.java at > > http://itextpdf.sf.net. Use > > ColumnText.showTextAligned() to put the chunks. > > Note that if what you are doing is to just stamp > > something on an existing > > pdf you'll get better results with PdfStamper. > > > > > > ----- Original Message ----- > > From: "Paul Krasucki" <[EMAIL PROTECTED]> > > To: "Paulo Soares" <[EMAIL PROTECTED]>; > > <[email protected]> > > Sent: Saturday, January 08, 2005 9:04 PM > > Subject: RE: [iText-questions] anchor in a template > > > > > > > Thanks, information helps, but problem still > > > unsolved... Is there any other way around it? > > Bottom > > > line is I need to create a box with some text, > > page > > > numbers, and link and put it in a predefined place > > on > > > the page (under the page I copied from another > > pdf). > > > Regards, > > > -Paul > > > > > > --- Paulo Soares <[EMAIL PROTECTED]> wrote: > > > > > > > Anchors are done with Chunk.setAnchor() but that > > > > won't help you in a > > > > template as the reference position would be > > relative > > > > to the template and > > > > not the page. Links must always be placed in > > > > PdfWriter.getDirectContent() or > > > > PdfWriter.getDirectContentUnder(). > > > > > > > > > -----Original Message----- > > > > > From: > > [EMAIL PROTECTED] > > > > > > > > > > > [mailto:[EMAIL PROTECTED] > > > > On > > > > > Behalf Of Paul Krasucki > > > > > Sent: Saturday, January 08, 2005 1:06 PM > > > > > To: Paulo Soares; > > > > [email protected] > > > > > Subject: Re: [iText-questions] anchor in a > > > > template > > > > > > > > > > Thanks for the answer - here is clarification: > > > > > I have PdfTemplate object which I add to some > > > > pages in > > > > > onEndPage(...) method. I would like to have > > there > > > > a > > > > > fixed link like http:\\somewebsite. I cannot > > add > > > > > Anchor directly and I don't see how I could > > wrap > > > > an > > > > > Anchor object into some element that I could > > add > > > > to > > > > > the template... > > > > > Thanks, > > > > > -Paul > > > > > > > > > > --- Paulo Soares <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > Links are always relative to the page so, > > > > depending > > > > > > on what you call > > > > > > 'template' it may or may not be doable. > > > > > > > > > > > > ----- Original Message ----- > > > > > > From: "Paul Krasucki" > > <[EMAIL PROTECTED]> > > > > > > To: <[email protected]> > > > > > > Sent: Saturday, January 08, 2005 2:24 AM > > > > > > Subject: [iText-questions] anchor in a > > template > > > > > > > > > > > > > > > > > > > I need to add an anchor (external link) to > > a > > > > > > template > > > > > > > and I could not find it in any of the > > > > examples. > > > > > > Help > > > > > > > will be greatly appreciated. > > > > > > > Thanks, > > > > > > > -Paul ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ iText-questions mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/itext-questions
