Coders,

Please forgive me in advance as my java kung foo is not that strong.  I have
a site which allows users to merge multiple pdf documents they choose via a
checklist, and then it will apply a small watermark to the top left
(xposition 158, yposition 743).  The problem is that there are some pdfs in
which the watermark gets set in the middle of the page instead of the top
left.  I believe I have read in some forums where it may be a size issue of
sorts, but I'm still confused.  I do know that I have found a weird work
around, which involves saving the pdf documents that don't work right, then
rescanning via copy machine and having my copy machine send it back to me
via email.  It will then apply the watermark to the upper left corner.  I
will attach my code below (note: code is written in coldfusion and java):


<!--- BEGIN WATERMARK SCRIPT --->

<cfscript>

paths = arrayNew(1);

        /*
        This points to the jar we want to load.
        Could also load a directory of .class files
        */
        paths[1] = expandPath("iText.jar");

        //create the loader
        loader2 = createObject("component", 
"javaloader.JavaLoader").init(paths);

function insertWatermarkPDF(pdfFileIn, imageFile, pdfFileOut, xPos, yPos,
zIndex)
{
        // zindex refers to placing the image over or under the content, 
default is
under
        // but if your content has a background, it may obscure the watermark
        if (NOT structKeyExists(arguments, "zIndex"))
                arguments.zIndex = 0;

        //try
        //{
                document = loader2.create("com.lowagie.text.Document");
                document.init();

                pdfReader = loader2.create("com.lowagie.text.pdf.PdfReader");
                pdfReader.init(arguments.pdfFileIn);

                // page countING
                n = pdfReader.getNumberOfPages();

                // creae an outputstream
                streamOut = loader2.create("java.io.FileOutputStream");
                streamOut.init(arguments.pdfFileOut);

                // give it to the pdfstamper
                pdfStamper = loader2.create("com.lowagie.text.pdf.PdfStamper");
                pdfStamper.init(pdfReader, streamOut);
                
                // contentbyte is a static object, no constructor
                under = loader2.create("com.lowagie.text.pdf.PdfContentByte");

                // create the Image handler, static object, no constructor
                Image = loader2.create("com.lowagie.text.Image");

                // now create an instance with this file (report_watermark.jpg)
                img = Image.getInstance(JavaCast("string", 
arguments.imageFile));
                img.setAbsolutePosition(arguments.xPos, arguments.yPos);

                for (ii = 1; ii LT n; ii = ii + 1)
                {
                        // pdfStamper supports getUnderContent() and 
getOverContent()
                        if (arguments.zIndex)
                                under = 
pdfStamper.getOverContent(JavaCast("int", ii));
                        else
                                under = 
pdfStamper.getUnderContent(JavaCast("int", ii));

                        under.addImage(img);
                }

                pdfStamper.close();

                return true;
        //}
        //catch (any e)
        //{
        //      return false;
        //}
}

</cfscript>

<cfoutput>#insertWatermarkPDF("<PATH REMOVED>\concatenation.pdf"
        ,"<PATH REMOVED>\n#form.tail#up.gif"
        ,"<PATH REMOVED>\concatenation2.pdf"
        ,158
        ,743
        ,1)#
</cfoutput>

I hope this isn't confusing.  Thanks in advance for everyone's assistance.
-- 
View this message in context: 
http://www.nabble.com/iText-Watermark-position-issue-tp16610488p16610488.html
Sent from the iText - General mailing list archive at Nabble.com.


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions

Do you like iText?
Buy the iText book: http://www.1t3xt.com/docs/book.php
Or leave a tip: https://tipit.to/itexttipjar

Reply via email to