Java Mailing List Archive

http://www.junlu.com/

Google
Google
Mailing List
Home
Forum Home
JBoss - Java Application Server
Tomcat - JSP/Servlet container
Struts - A MVC web framework
iText - An open source PDF Java Library
JDOM - JDOM XML Parser
JSP - A mailing list about Java Server Pages specification and reference
J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition
J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog
Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology
Struts & Hibernate
Subjects
JSP editor plugin for eclipse ?
org apache jasper JasperException: Unable to compile class for JSP
Tomcat: Connection reset by peer: socket write error
Cannot retrieve definition for form bean null
Struts Tiles Tutorial (free Struts training)
Where do I download Tomcat 4 0 6?
Data Access Object (DAO) pattern, example DAO 's
Where to download Tomcat v 4 1 24 from?
Tomcat 5 0 16 Requested resource not available
Subject: Servlet : Session invalidate
Oracle Connection Pooling in 3 2 2
Servlet action is currently unavailable
Tomcat/Struts Unicode Encoding/Decoding problems
Subject: Running a Simple JMS Example
Tomcat and webapplication specific java library path
Mapping in workers2 properties
org apache jasper JasperException
problem with html:text bean throwing exception
Cannot find message resources under key org apache struts action
   MESSAGE
Cannot find message resources under key org apache struts action MESSAGE
invalid direct reference problem with solution
Tool for jsp debug Try Sysdeo Eclipse Plugin
Tomcat 5 Cannot load JDBC driver class 'null ' SQL state: null
weblogic ejbc
java properties file
Jboss 3 2 3 Coyote Can 't re
Tomcat 5, Apache2 and mod jk2 integration problem
JBoss example problem new to J2EE
Value attribute of <html:checkbox
url string for connecting jboss to oracle
javax servlet ServletException: BeanUtils populate
5 0 18: Windows XP Pro vs Windows 2000
HTTP Status 404 The requested resource is not available
 
Watermark on a pdf wich is embedded in a browser

Watermark on a pdf wich is embedded in a browser

2007-11-15       - By Adriano Leite Ribero

 Back
Reply:     1     2     3     4  

I think I have not explained the problem properly.

The String I have, let?s call it inputString, has the following content:

            %PDF-1 (See http://PDF-1.ora-code.com).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 <adriano.leite.ribero@(protected)>:
> Do you mean I have to encode my string (having the pdf content
> "%PDF-1 (See http://PDF-1.ora-code.com).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 <psoares@(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: itext-questions-bounces@(protected)
> > > [mailto:itext-questions-bounces@(protected)] On
> > > Behalf Of Adriano Leite Ribero
> > > Sent: Thursday, November 15, 2007 8:47 AM
> > > To: itext-questions@(protected)
> > > 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 (See http://ISO-8859.ora-code.com)-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 (See http://ISO-8859.ora-code.com)-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@(protected)
> > 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@(protected)
https://lists.sourceforge.net/lists/listinfo/itext-questions
Buy the iText book: http://itext.ugent.be/itext-in-action/

©2008 junlu.com - Jax Systems, LLC, U.S.A.