-
1. Re: Put an Image in a header with iText
monstor Jun 3, 2008 5:12 PM (in response to monstor)Nobody have a litle idea?
-
2. Re: Put an Image in a header with iText
norman Jun 4, 2008 12:45 AM (in response to monstor)Sorry. I don't think it's possible within the constraints of the IText HeaderFooter class. It is not very flexible. If you can point me to an example, I'll be happy to make the appropriate changes. However, the only way I can see to do this is to rewrite/replace HeaderFooter.
-
3. Re: Put an Image in a header with iText
monstor Jun 4, 2008 9:52 AM (in response to monstor)Ok, thanks for tour reply.
I just want to put my society logo in the top of all my pdf pages.
header would be the best solution but...If anybody have an idea...
-
4. Re: Put an Image in a header with iText
nickarls Jun 4, 2008 10:13 AM (in response to monstor)Is it possible to watermark the logo?
-
5. Re: Put an Image in a header with iText
monstor Jun 4, 2008 10:27 AM (in response to monstor)I thinh it will be possible, but after, how can I do for include this in the top of my pages?
-
6. Re: Put an Image in a header with iText
nickarls Jun 4, 2008 11:26 AM (in response to monstor)Never done it but perhaps this can be used as some sort of starting point.
-
7. Re: Put an Image in a header with iText
monstor Jun 4, 2008 11:51 AM (in response to monstor)Perhaps yes but I don't wnat to use java code, I make my pdf with my xhtml view ;)
-
8. Re: Put an Image in a header with iText
www.supernovasoftware.com Jun 4, 2008 5:55 PM (in response to monstor)This is what I do. I am using JasperReports, but I fall back to iText to overlay another PDF at the top of the document.
The PDF is just the logo in vector graphics format saved as a PDF.
This allows for the the logo to scale if the PDF is zoomed into.
I am sure there is a better way, but I made this a couple of years ago and it works for me.
public byte[] addLogo(JasperPrint jasperPrint) throws Exception { byte[] bytes = null; JRPdfExporter exporter = new JRPdfExporter(); exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ByteArrayOutputStream baos2 = new ByteArrayOutputStream(); exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, baos); try { exporter.exportReport(); bytes = baos.toByteArray(); PdfReader pdfReader = new PdfReader(bytes); Rectangle psize = pdfReader.getPageSize(1); // System.out.println("psize: (" + psize.width()+","+psize.height() + ")"); //TODO fix this where is does not break when I move the resource around. InputStream in = getClass().getClassLoader().getResourceAsStream("com/xxx/model/state/type/paperwork_logo.pdf"); PdfReader pdfReaderLogo = new PdfReader(in); Rectangle psizeLogo = pdfReaderLogo.getPageSize(1); // System.out.println("psizeLogo: (" + psizeLogo.width()+","+psizeLogo.height() + ")"); // step 1: creation of a document-object Document document = new Document(psize); // // step 2: we create a writer that listens to the document PdfWriter writer = PdfWriter.getInstance(document, baos2); document.open(); PdfContentByte cb = writer.getDirectContent(); PdfImportedPage pageReport = writer.getImportedPage(pdfReader, 1); PdfImportedPage pageLogo = writer.getImportedPage(pdfReaderLogo, 1); cb.addTemplate(pageReport, 0, 0); cb.addTemplate(pageLogo, .4f, 0f, 0f, .4f, 30, 725); document.close(); bytes = baos2.toByteArray(); } catch (Exception de) { de.printStackTrace(); } return bytes; }
-
9. Re: Put an Image in a header with iText
bolke Jun 4, 2008 7:08 PM (in response to monstor)It is not possible indeed. Besides that the HeaderFooter class is deprecated.
Due to the way iText is setup it is not very easy to integrate a footer / header in the way Seam is using/wants to use it. I know I offered to integrate it once but the complexity and cruftiness (of iText) does not appeal very much to me.
You might be able to get away with generating a PDF from seam, getting it from the document store then using PdfStamper to add a PdfPTable to the end of the document. Of course you would need to adjust the margins of your document to accomodate for this.
Another option would be JapserReports as mentioned elsewhere in this thread. But for me this was not flexible enough either. Too many assumptions which made generating my document as complex as coding it myself with plain iText.
-
10. Re: Put an Image in a header with iText
schlegel Jun 13, 2008 11:31 PM (in response to monstor)After lot of trial and error....
I found this Solution.
<f:facet name="header"> <p:font size="14"> <p:header borderWidthTop="0" borderWidthBottom="0.4" alignment="left"><p:paragraph><p:html> <table cellpadding="0" cellspacing="0" border="0" width="100%"> <tr> <td align="left">Request Liste<sup><font size="1">12</font></sup></td> <td align="center">Erstellt von: UserName<img src="http://localhost:8080/xyz/img/appl/codes.gif" alt=" " border="0" width="32" height="32"/></td> <td align="right">Erstellt am:<h:outputText value=" "/><h:outputText value="#{printDate}"><s:convertDateTime locale="#{locale}" dateStyle="medium"/></h:outputText> </td> </tr> </table> </p:html> </p:paragraph> </p:header> <p:footer borderWidthTop=".4" borderWidthBottom="0" alignment="left">Request Liste - Seite [<p:pageNumber/>]</p:footer> </p:font> </f:facet>
-
11. Re: Put an Image in a header with iText
dan.j.allen Jun 14, 2008 7:09 PM (in response to monstor)Would you be willing to simplify this and make it an FAQ. You would likely help out a lot of folks.
As for the discussion of Seam's PDF component tags versus iText, you have to remember that the component tags are there to make creating PDFs quickly and easy. Sure, they are not going to support every feature. If there is feature that should be simple, and it is common enough, we should get that into the component tags (file a JIRA). But don't assume that you can satisfy every business needs with the component tags. If they were as complex as iText, then they wouldn't have any advantage. You may even want to use JasperReports to create more complex PDFs without touching iText.
-
12. Re: Put an Image in a header with iText
monstor Jun 20, 2008 10:35 AM (in response to monstor)Thanks a lot, it works good!!!
I have just a little problem, my image is higher than the hight of the header. Is it possible to change the hight of the header or must I change my image size?
-
13. Re: Put an Image in a header with iText
schlegel Sep 12, 2008 6:29 PM (in response to monstor)Hi Dan
Sorry for my very late answer...
Your suggestion to make a FAQ would be no problem - but to be honest I don't like the p-tags very much.
You are right - if the seam pdf library would support most of the iText functionality then it would be
too difficult to use - but now it is to limiting - at least for me.My suggestion would be to integrate the Flying Saucer XHTML Renderer - it is not perfect and it is tricky
to setup - but ounce done its easy to work with.This could be an addition to the seam pdf library.
See: http://www.seamframework.org/Community/HowCanIPrintMyPage
-
14. Re: Put an Image in a header with iText
rowan Sep 3, 2009 9:16 AM (in response to monstor)How can you get rid of the absolute path when referencing the image?
Through the fasesContext component somehow?
Any ideas?