[poppler] [RFC] PDF Modification in poppler
julien at fhtagn.net
Fri Aug 18 08:05:59 PDT 2006
Le vendredi 18 août 2006 à 09:04 -0400, Leonard Rosenthol a écrit :
> 1) You write all strings as Hex - that makes the file larger. You
> shouldn't need to do that.
> 2) The Save code all assumes that you are writing to a file. Since
> reading supports reading from a "generic stream" - it would be
> worthwhile to do the same for writing. That would provide more
> future expansion/flexibility.
> 3) You might find that floating point values get written out with
> more decimal places than you'd like - so consider limiting to 3 or 4
> (or a user-setting).
I agree with all the three points.
> 4) You decompress ALL streams and write them out
> uncompressed. OUCH! I would take the approach that if the stream
> object is untouched, just copy the bytes "raw" from the original file
> to the new one. Faster (no decompression!) and smaller output files.
This is a good idea.
I'll also eventually need a stream encoder to encode the modified ones,
but this will be in a far future.
> 5) I didn't look at an output file, but I think you are outputting
> MUCH MORE whitespace than necessary.
You're probably right, I'll try to reduce them to what is required by
> 6) I don't see you updating the ID for either write. For
> incremental, you update only the second value, for a full, you need a
> completely new ID.
Oups! I forgot that !
> >One things that isn't implemented at the moment is the update of direct
> >Objects. For example, the Annotation may be direct Objects (directly
> >contained in the Page dict "Annots" entry). If the client updates a
> >direct Annotation, the whole first 'indirect-parent' Object (probably
> >the Page dict in our example) must be updated through setModifiedObject.
> >This is, at least, the only solution I see for direct Objects update,
> >but perhaps other people have other ideas.
> Either that or convert the direct object to an indirect...
Nice idea, I'll try that.
Thanks you for the comments :-)
More information about the poppler