[ 
https://issues.apache.org/jira/browse/PDFBOX-912?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Adam Nichols reopened PDFBOX-912:
---------------------------------


We'll mark the issue as resolved when the code is committed to SVN.  Leaving it 
as open reminds us that we still needs to get these patches committed.

I don't have time to look into all the changes right now, but I'm looking 
forward to the incremental support.  That should help reduce memory usage when 
merging two documents together (I'd expect roughly a 50% reduction in memory 
used if both files are the same size, since the first file wouldn't require any 
modifications at all).

I'm also looking forward to seeing how the signing is done and seeing if we can 
have an implementation included in PDFBox instead of just an interface.  It 
doesn't really make sense for each of us to implement the same functions 
outside of PDFBox on our own.  Obviously not all possible methods of signing, 
but at least some common ones.

> PDF signing interface and improvments
> -------------------------------------
>
>                 Key: PDFBOX-912
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-912
>             Project: PDFBox
>          Issue Type: Improvement
>          Components: PDFReader, PDModel, PDModel.AcroForm, Writing
>    Affects Versions: 1.4.0
>            Reporter: Thomas Chojecki
>            Priority: Minor
>             Fix For: 1.4.0
>
>         Attachments: cos_object_improvement_patch.txt, 
> fields_annotations_patch.txt, interface_options_patch.txt, io_patch.txt, 
> main_documents_patch.txt, parser_patch.txt, signature_exception_patch.txt, 
> test.pdf, test_signed.pdf, writer_patch.txt
>
>
> This is a first version of a signing interface for pdfbox. There are some 
> design issues i could not handle without rewriting too much of the code.
> Here we go:
> - incremental update support (tested for signatures with pdf/a 
> compatibility), not compatible with encrypted documents nor with xref-streams
> - cos object improvment
>   -- COSString with ability to force writing hexbin for given string
>   -- COSBase with ability to write direct into a dictionary (that means if 
> this is set, no indirect object will be wrote) (sry hard to explain what i 
> mean, actualy needed for incremental update to lower the rate of indirect 
> objects)
>   -- COSBase with ability to force writing object (this hook help the 
> COSWriter write needed objects for inkremental update)
>   -- COSName added new names
>   -- COSDocument some getter and setter for handling new signature and 
> incremental features
> - SignatureException with some exceptions for handling the bunch of new 
> possible errors
> -Parser improvments
>   -- PDFParser saves now the position of the last startxref
>   -- VisualSignatureParser (hook for parsing visual signature templates) 
> (it's only for prepared visualisation that should be merged with the document)
> -IO improvments
>   -- COSFilterInput helps to find the proper content that should be hashed / 
> signed
>   -- COSStandardOutputStream is tricky, it helps the writer to jump to the 
> right place in the document
>   -- COSWriter got some improvments for incremental update
>   -- COSWriterXRefEntry needed for incremental updates and writing the new 
> Xref table
> - PDDocument
>  -- got a new method addSignature with the needed implementation (do the 
> whole signature stuff)
>  -- cleanup
> - Fields and Annotations
>  -- PDSignature represent the signature dictionary 
>  -- PDSignatureFild / Annotation are the visible & unvisible signature 
> representations
> - Signature Interface and options
>  -- SignatureInterface the interface that shall be implemented for proper 
> signing
>  -- SignatureOptions, some additional options for signing
> Patch splited into pieces
> sry for spelling, didn't include a spellchecker for english.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to