Why do you need/want to use a String? Where does the String comes from? Paulo
> -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On > Behalf Of Adriano Leite Ribero > Sent: Thursday, November 15, 2007 1:58 PM > To: Post all your questions about iText here > Subject: Re: [iText-questions] Watermark on a pdf wich is > embedded inabrowser > > Thanks a lot for the explanation and for the transformation scheme: > > "PDF in a String -> decode base64 -> PDF in a byte[] -> use it > in PdfReader" > > But do you mean that the PDF they give to me, the PDF with the content > (I get it with the always used System.out.println method) > > %PDF-1.1 > 1 0 obj > << > /Creator (Developer 2000) > /CreatorDate (Thu Nov 15 08:42:50 AM 2007) > /Author (Oracle Reports) > /Producer (Oracle PDF driver) > /Title (52985491.pdf) > ... > > is already base64 encoded? I think it is not encoded, because when I > try to decode it I recieve the error "Length of Base64 encoded input > string is not a multiple of 4.". So I thing it is an usual String, not > an encoded String. And that prevents me from reaching the "PDF in a > byte[]" stage form your good "PDF in a String -> decode base64 -> PDF > in a byte[] -> use it in PdfReader" step-by-step scheme. > > Feel sorry for been asking so many questions, Paulo, you are being > very helpful to me... > > > 2007/11/15, Paulo Soares <[EMAIL PROTECTED]>: > > You have explained the problem properly but you didn't > understand the answer. If you must have a pdf inside a String > you MUST code it in some way, for example base64, to preserve > all the bytes. Think of PDF as a JPEG image and the way to > put a JPEG image inside a String. Just because PDF looks like > text in notepad it isn't text. > > The process is (for example): > > > > PDF in a byte[] -> convert to base64 -> PDF in String > > PDF in a String -> decode base64 -> PDF in a byte[] -> use > it in PdfReader > > > > Paulo > > > > > -----Original Message----- > > > From: [EMAIL PROTECTED] > > > [mailto:[EMAIL PROTECTED] On > > > Behalf Of Adriano Leite Ribero > > > Sent: Thursday, November 15, 2007 12:11 PM > > > To: Post all your questions about iText here > > > Subject: Re: [iText-questions] Watermark on a pdf wich is > > > embedded in abrowser > > > > > > I think I have not explained the problem properly. > > > > > > The String I have, let´s call it inputString, has the > > > following content: > > > > > > %PDF-1.2 > > > %âãÏÓ > > > 3 0 obj > > > << > > > /Linearized 1 > > > ... (etc) > > > > > > (looks similar to the content you see when opening a PDF > with notepad, > > > ultraedit, notepad++, etc) > > > > > > If I construct a PdfReader the following way: > > > > > > PdfReader reader = new > PdfReader(inputString.getBytes()); > > > > > > it works fine, it opens it, seems no extra transformation > is required. > > > Then I manipulate the file (add the watermark as I have mentioned > > > before) and write the resulting PDF to the browser, but it looks > > > exactly like the original one. But the content of the original and > > > final PDF documents are a little different (the size of the > > > manipulated document is bigger). > > > > > > It seems that the watermark is somehow added, and the document > > > structure is not damaged (otherwise, it wouldn´t load), > but something > > > is wrong. And it has to be related to the transformation > between the > > > inputString and its corresponding byte array. > > > > > > I´ve tryed to encode the inputString to a Base64 char > array, but it is > > > not the solution. I think this because an exception is > throwed when > > > trying to construct the PdfReader object with the encoded String, > > > thing that did't happen if I don´t encode the String: > > > > > > 07/11/15 12:33:53 java.io.IOException: PDF header > signature not found. > > > 07/11/15 12:33:53 at > com.lowagie.text.pdf.PRTokeniser.checkPdfHeader > > > 07/11/15 12:33:53 at com.lowagie.text.pdf.PdfReader.readPdf > > > 07/11/15 12:33:53 at com.lowagie.text.pdf.PdfReader.<init> > > > > > > So, the steps should be (and in my code are, in fact): > > > > > > - transform the inputString in a byte[] to construct the PdfReader > > > - construct the PdfReader > > > - add the watermark (works ok starting from a PdfReader) > > > - read the resulting ByteArrayOutputStream (from the PdfStamper > > > associated to the PdfReader) and transforming it back to a String > > > (with toString) > > > > > > What do I miss? > > > > > > Excuse me for so many questions, I think it must be a > detail (because > > > I´ve done the same with pdf files). > > > Adriano. > > > > > > 2007/11/15, Adriano Leite Ribero <[EMAIL PROTECTED]>: > > > > Do you mean I have to encode my string (having the pdf content > > > > "%PDF-1.2......") as a base64 char[] and construct the PdfReader > > > > object passing that char[] as a parameter? (I have to check > > > it, but I > > > > think PdfReader(char[]) wasn`t a valid constructor...). > > > > > > > > Again, lot of thanks for your time, > > > > Adriano. > > > > > > > > 2007/11/15, Paulo Soares <[EMAIL PROTECTED]>: > > > > > The problem is that PDF are binary. If you must pass it > > > as a string encoded it first as base64 and decode it before > > > delivering it to PdfReader. > > > > > > > > > > Paulo > > > > > > > > > > > -----Original Message----- > > > > > > From: [EMAIL PROTECTED] > > > > > > [mailto:[EMAIL PROTECTED] On > > > > > > Behalf Of Adriano Leite Ribero > > > > > > Sent: Thursday, November 15, 2007 8:47 AM > > > > > > To: itext-questions@lists.sourceforge.net > > > > > > Subject: [iText-questions] Watermark on a pdf wich is > > > > > > embedded in a browser > > > > > > > > > > > > Hi, > > > > > > > > > > > > I am trying to add some watermark to a pdf document. > > > I've followed > > > > > > correctly the example of the file > > > "AddWatermarkPageNumbers.java" from > > > > > > > > > > "http://itextdocs.lowagie.com/tutorial/general/copystamp/index.php", > > > > > > and it works properly. I have made some changes to fit > > > the method in > > > > > > that java file to my purpose without problems, and > > > renamed the method > > > > > > in it as "addWaterMark", so my method preWaterMark1, > > > which calls it, > > > > > > works fine: > > > > > > > > > > > > public static void preWaterMark1(String > > > nameOriginalFile, String > > > > > > text, String image, String nameOutputFile) { > > > > > > try { > > > > > > PdfReader reader = new > PdfReader(nameOriginalFile); > > > > > > PdfStamper stamp = new PdfStamper(reader, new > > > > > > FileOutputStream(nameOutputFile)); > > > > > > addWaterMark(reader, stamp, text, image); > > > > > > } catch (Exception e){ > > > > > > System.out.println("MarcaDeAgua.preWaterMark -> > > > > > > Excepción: " + e); > > > > > > } > > > > > > } > > > > > > > > > > > > private static void addWaterMark(PdfReader reader, > > > PdfStamper stamp, > > > > > > String text, String image){... /*works ok*/} > > > > > > > > > > > > > > > > > > The problem is that i need to do the same with pdf > > > documents that > > > > > > are not files, they are just in the browser. I start > > > from a String > > > > > > having the content of a document of that kind, and, > > > following the same > > > > > > steps I've written preWaterMark2, which uses the same > > > method to write > > > > > > the watermark. But what I get is just the pdf without > > > any visible > > > > > > changes, I can´t see any watermark. But I know the > > > String having the > > > > > > content of the pdf document has changed. > > > > > > > > > > > > public static String preWaterMark2(String pdfContent, > > > String text, > > > > > > String image){ > > > > > > ByteArrayOutputStream baos = new > ByteArrayOutputStream(); > > > > > > try { > > > > > > PdfReader reader = new > > > > > > PdfReader(pdfContent.getBytes("ISO-8859-1")); > > > > > > PdfStamper stamp = new PdfStamper(reader, baos); > > > > > > addWaterMark(reader, stamp, text, image); > > > > > > } catch (Exception de){ > > > > > > de.printStackTrace(); > > > > > > } > > > > > > String ret = ""; > > > > > > try{ > > > > > > if (baos.toString()!= null) > > > > > > ret = baos.toString(); > > > > > > } catch (Exception e){ > > > > > > System.out.println("MarcaDeAgua.preWaterMark -> > > > Excepción: " + > > > > > > e.getMessage()); > > > > > > e.printStackTrace(); > > > > > > } > > > > > > return ret; > > > > > > } > > > > > > > > > > > > I guess the problem could be related to the > transforming process > > > > > > between the String having the PDF content and the > > > byte[] with the same > > > > > > data. I have tryed to change the "ISO-8859-1", but it > > > keeps on showing > > > > > > me a PDF without any watermark. > > > > > > > > > > > > Does anybody know what could be the problem? > > > > > > > > > > > > Lot´s of thanks, > > > > > > Adriano. > > > > > > Aviso Legal: > > Esta mensagem é destinada exclusivamente ao destinatário. > Pode conter informação confidencial ou legalmente protegida. > A incorrecta transmissão desta mensagem não significa a perca > de confidencialidade. Se esta mensagem for recebida por > engano, por favor envie-a de volta para o remetente e > apague-a do seu sistema de imediato. É proibido a qualquer > pessoa que não o destinatário de usar, revelar ou distribuir > qualquer parte desta mensagem. > > > > Disclaimer: > > This message is destined exclusively to the intended > receiver. It may contain confidential or legally protected > information. The incorrect transmission of this message does > not mean the loss of its confidentiality. If this message is > received by mistake, please send it back to the sender and > delete it from your system immediately. It is forbidden to > any person who is not the intended receiver to use, > distribute or copy any part of this message. > > > > > -------------------------------------------------------------- > ----------- > > This SF.net email is sponsored by: Splunk Inc. > > Still grepping through log files to find problems? Stop. > > Now Search log events and configuration files using AJAX > and a browser. > > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > _______________________________________________ > > iText-questions mailing list > > iText-questions@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/itext-questions > > Buy the iText book: http://itext.ugent.be/itext-in-action/ > > > > -------------------------------------------------------------- > ----------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and > a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > iText-questions mailing list > iText-questions@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/itext-questions > Buy the iText book: http://itext.ugent.be/itext-in-action/ > Aviso Legal: Esta mensagem é destinada exclusivamente ao destinatário. Pode conter informação confidencial ou legalmente protegida. A incorrecta transmissão desta mensagem não significa a perca de confidencialidade. Se esta mensagem for recebida por engano, por favor envie-a de volta para o remetente e apague-a do seu sistema de imediato. É proibido a qualquer pessoa que não o destinatário de usar, revelar ou distribuir qualquer parte desta mensagem. Disclaimer: This message is destined exclusively to the intended receiver. It may contain confidential or legally protected information. The incorrect transmission of this message does not mean the loss of its confidentiality. If this message is received by mistake, please send it back to the sender and delete it from your system immediately. It is forbidden to any person who is not the intended receiver to use, distribute or copy any part of this message. ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ iText-questions mailing list iText-questions@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/itext-questions Buy the iText book: http://itext.ugent.be/itext-in-action/