Absolutely fantastic!  Thank you very much!

BTW: Is there a specific section of the PDF Reference (or some online 
resource) that describes what each of those "operators" is?  I would 
love to refer to that as well.

Thanks again!!!

-AJ


On 2/16/2012 1:40 PM, iText Info wrote:
> Op 16/02/2012 18:57, AJ Weber schreef:
>> Would I:
>> 1) Open existing PDF in PdfReader;
> Yes.
>
>> 2) Use similar classes to OCGParser/Remover to operate on the reader;
> Yes.
>
>> 3) Create a PdfCopy or PdfStamper to then simply copy the reader to a
>> new output PDF (and I assume the changes made to the reader-interface
>> would be applied to the output)?
> PdfStamper, NOT PdfCopy.
>
> For instance:
>
>       public static void main(String[] args) throws IOException,
> DocumentException {
>           PdfReader reader = new PdfReader("original.pdf");
>           MyParser parser = new MyParser(args[0]);
>           PdfDictionary page;
>           for (int i = 1; i<= reader.getNumberOfPages(); i++) {
>               page = reader.getPageN(i);
>               PRStream stream = (PRStream)page.getAsStream(PdfName.CONTENTS);
>               PdfDictionary resources = page.getAsDict(PdfName.RESOURCES);
>               parser.parse(stream, resources);
>           }
>           reader.removeUnusedObjects();
>           PdfStamper stamper = new PdfStamper(reader, new
> FileOutputStream("fixed.pdf"));
>           stamper.close();
>       }
>
> MyParser parses and copies all PDF syntax, except for some particular
> part defined by args[0].
> Note that this code snippet assumes that the /Contents element in the
> page dictionary is a stream. In your case it could be an array in which
> case the code will throw a ClassCastException.
>
> I suggest that you start by removing everything from the OCG parser
> keeping the dummy operator.
> This should result in code that makes a copy of the original file.
> Then you'd need to find out which operator is used to add the part you
> want to remove.
> Create a custom operator class that does exactly the same thing as the
> dummy operator, except when the part you don't want to copy is encountered.
>
> ------------------------------------------------------------------------------
> Virtualization&  Cloud Management Using Capacity Planning
> Cloud computing makes use of virtualization - but cloud computing
> also focuses on allowing computing to be delivered as a service.
> http://www.accelacomm.com/jaw/sfnl/114/51521223/
> _______________________________________________
> iText-questions mailing list
> iText-questions@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/itext-questions
>
> iText(R) is a registered trademark of 1T3XT BVBA.
> Many questions posted to this list can (and will) be answered with a 
> reference to the iText book: http://www.itextpdf.com/book/
> Please check the keywords list before you ask for examples: 
> http://itextpdf.com/themes/keywords.php

------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

iText(R) is a registered trademark of 1T3XT BVBA.
Many questions posted to this list can (and will) be answered with a reference 
to the iText book: http://www.itextpdf.com/book/
Please check the keywords list before you ask for examples: 
http://itextpdf.com/themes/keywords.php

Reply via email to