Hi All,
I am wondering why nobody is interested in responding to my question? I seem
to have found a fix but just wanted to confirm with experts on this forum.
So any help is greatly appreciated.
Thanks
Subrah
subrah wrote:
>
> Hi
> Sorry resending this post as i was not registered user earlier.
>
> i am using latest iTextSharp library to edit the pdf documents to put the
> water marking digitallly (hidden). So when i researched i found that i can
> add a annotation to the pdf document and then set the flags to
> annotation.Flags = PdfAnnotation.FLAGS_NOVIEW |
> PdfAnnotation.FLAGS_INVISIBLE | PdfAnnotation.FLAGS_HIDDEN; to make it
> invisible.
>
> so this is working fine as expected 90% of the time. Remaning 10 % of the
> time i get an error when i open the document after adding the annotation
> it says "Root object is invalid or missing"
>
> so looks like it corrupted the file trying to add the annoation. do you
> have any suggestion? i can share the code i am using to add the annotation
> if that helps.
>
> Full code
> public static byte[] EditPdf(string sourceFile, string visibleWaterMark,
> string digitalWaterMark)
> {
> PdfReader reader = new PdfReader(sourceFile);
> using (MemoryStream memoryStream = new MemoryStream())
> {
> PdfStamper pdfStamper = new PdfStamper(reader,
> memoryStream);
> // process every page in the pdf file
> for (int i = 1; i <= reader.NumberOfPages; i++)
> {
> Rectangle pageSize =
> reader.GetPageSizeWithRotation(i);
> PdfContentByte pdfPageContents =
> pdfStamper.GetUnderContent(i);
> PdfAnnotation annotation =
> PdfAnnotation.CreateText(pdfStamper.Writer, new Rectangle(200f, 400f,
> 300f, 500f), digitalWaterMark,
> "Street Events Digital Watermark",
> false, "Key");
> //digital water marking
> annotation.Flags = PdfAnnotation.FLAGS_NOVIEW |
> PdfAnnotation.FLAGS_INVISIBLE | PdfAnnotation.FLAGS_HIDDEN;
> pdfStamper.AddAnnotation(annotation, i);
> pdfPageContents.BeginText();
> BaseFont baseFont =
> BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, Encoding.ASCII.EncodingName,
> BaseFont.NOT_EMBEDDED);
> pdfPageContents.SetFontAndSize(baseFont, 10);
> pdfPageContents.SetRGBColorFill(225, 224, 223);
> // visible water marking
>
> pdfPageContents.ShowTextAligned(PdfContentByte.ALIGN_RIGHT,
> visibleWaterMark,
> pageSize.Width - 50,
> pageSize.Height - 15,
> 0);
> pdfPageContents.EndText();
> pdfStamper.FormFlattening = true;
>
> }
>
> pdfStamper.Close();
> return memoryStream.ToArray();
> }
>
>
>
> public static void SaveFile(string fileHandle, byte[] fileBytes)
> {
> using(FileStream fs = new FileStream(fileHandle,
> FileMode.Create))
> {
> fs.Write(fileBytes, 0, fileBytes.Length);
> fs.Flush();
> fs.Close();
> }
>
> }
>
> //call
> FileInfo pdfFileInfo = new FileInfo(newFilePath);
> byte[] fileBytes = PdfWaterMarker.EditPdf(pdfFileInfo,
> string.Format("Client Id: {0}", clientSite.ClientId));
> PdfWaterMarker.SaveFile(newFilePath, fileBytes);
>
> please let me know
> Thanks
> Subrah
>
>
--
View this message in context:
http://old.nabble.com/Root-Object-is-invalid-or-missing-after-PDF-is-manipulated-with-iTextSharp-tp26305073p26375297.html
Sent from the iText - General mailing list archive at Nabble.com.
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions
Buy the iText book: http://www.1t3xt.com/docs/book.php
Check the site with examples before you ask questions:
http://www.1t3xt.info/examples/
You can also search the keywords list: http://1t3xt.info/tutorials/keywords/