Try the code in the SVN, it fixes a problem in heavy multithreading.

Paulo

----- Original Message ----- 
From: "subrah" <subnibh...@gmail.com>
To: <itext-questions@lists.sourceforge.net>
Sent: Monday, November 16, 2009 8:12 PM
Subject: Re: [iText-questions] Root Object is invalid or missing after PDF 
is manipulated with iTextSharp



Attached is the corrupt file.
 if i try to read the corrupted file using pdfreader i get the error message
saying "start ref not found". But the issue is that problem is not
consistant. I am able to water mark the same original file 2nd time using
the same code. So it's like randomly some file is not fully written.

i am gussing this is because the pdfstamper is closing the memory stream
earlier than it should for some reason. However what i want to confirm is
that my understanding that the probelm is infact the memory stream is right
or not?. Because i have implmented alternative technique to compltely avoid
memory stream and pdf stamper but use pdfwriter and file stream which seem
to have fixed the issue in dev. But still need to get response from a heavy
testing team. Any light thrwon on this subject will be of great help to me.

Thanks
Subrah



Mark Storer-2 wrote:
>
> A: Most of the folks on the list lean toward Java.
> B: If no one knows the answer, no one answers.
>
> Perhaps you could post one of your corrupted PDFs?
>
> --Mark Storer
>   Senior Software Engineer
>   Cardiff.com
>
> #include <disclaimer>
> typedef std::Disclaimer<Cardiff> DisCard;
>
>
>
>> -----Original Message-----
>> From: subrah [mailto:subnibh...@gmail.com]
>> Sent: Monday, November 16, 2009 8:50 AM
>> To: itext-questions@lists.sourceforge.net
>> Subject: Re: [iText-questions] Root Object is invalid or missing after
>> PDF is manipulated with iTextSharp
>>
>>
>>
>> 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
iText-questions@lists.sourceforge.net
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/

Reply via email to