Dominik Seichter wrote:
> Hi,
>
> I think the problem is fixed by your patch you sent later in this thread. I
> commited it for this reason.
Makes sense.
> To sum up: I think we should try replacing PdfInputStream and PdfOutputStream
> with classes from boost in a new branch. I am not yet sure wether we should
> wrap them in a PdfIOStream class or use them directly? From a Software
> Engineering point of view, wrapping them sounds like a good idea. This way we
> could support different output stream libraries and keep boost maybe as an
> optional dependency.
>
> What do the others think? Does this all make sense?
First, I'm mostly at the "idly wondering" stage with regard to the
streams stuff. Since what's there works and works well, that's probably
appropriate, and it's certainly a good reason to be cautious about
experimenting with changing it. I fully agree that if anything does
happen it should be in an experimental branch and just for
testing/investigation initially.
What bothers me is partly that the PoDoFo streams aren't compatible with
anything else and we can't use common existing facilities with them.
It's another barrier for new users to overcome. This mostly concerns me
when it comes to reading from and writing to PDF stream objects, but I
also wonder if it'd make it easier for people to contribute new filters etc.
I do think that if we used the boost streams framework at all we would
be well advised not to wrap it. That's extra cost, and IMO it'd largely
defeat the purpose of using an external streams implementation. The
reason the boost streams interest me is that they make it easy to
implement new sources/sinks while retaining compatibility with the
classic iostreams interface, plus they chain naturally for use in
filters etc.
In other words, if we did switch to a separate streams library it'd
involve a bunch of internal changes. The question is whether it's worth
it, really, and it's hard to know that without trying it and seeing.
Right now this is just on my "like to look at it if I have time" list.
I'm presently more interested in working on some podofobrowser improvements:
- A tab that shows all image resources found in the PDF,
along with thumbnails and the option of extracting or
replacing them.
- A PDF variant editor widget (and TreeItem delegate) for
user-friendly Unicode strings, names, etc, so users don't
have to worry about the encoding and escaping.
- Providing linked-to counts on objects so I can show multiply
referenced objects differently to singly referenced ones.
- In the above linked-to counts, eliminating closed cyclic links
so (eg) the root node of a linked list is "linked-to"
only once.
- Mapping links so objects can have linked-to-by
information available.
- Efficient search for objects matching criteria, eg:
"Dictionaries with a /Type key having value /XObject"
I'm thinking of having a bash at implementing an external adapter for
the Boost Graph Library so the generic search, minimum spanning tree,
etc algorithms that it implements can be used directly on a PoDoFo
document. That'd make the most of the above items a *lot* easier if it
can work.
I've also got to take a better crack at clarifying the usage of
PdfObject and PdfVariant so that the proposed ownership rules I
mentioned earlier can be relied on by users. In a branch, of course, but
this time I'll know where I'm aiming from the start and should be able
to produce something mergable.
Right now, however, I've got to get onto my real job - currently writing
new database schema, data converters, etc for our accounts & bookings
system. At least I get to use PostgreSQL :-)
> PS: My girlfriend would be angry at you if she knew ... I am about to meet
> her
> in cinema in a few minutes and all I will think about is the PoDoFo IO
> Streams implementation. Beeing a geek can be hard at times :)
Computers will wait. People won't. I'm not very good at acting on that
basis myself, but I try.
--
Craig Ringer
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Podofo-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/podofo-users