Hi Radek, Thank you very much for your thougths. I think they are very constructive and I will answer them in a minute.
Before that, let me ask for what kind of feature you are using PoDoFo? It is often easier to understand each other, if one knows the problem each of us want's to solve. For me, PoDoFo started because of a need for a low level PDF library, which allowed me to analyze and modify the structure of PDFs and work with low level objects and streams. Later, in another project, I also needed more high level PDF generation features. I.e. generating PDF documents with fonts, forms, annotations etc. So, PoDoFo currently tries to solve two needs: low level PDF operations and high level document modification (like painting in to an existing document) and generation of documents. As far as I know, PoDoFo is very unique in allowing to access all the low level objects of a PDF and work with them. This serving of two needs results currently in a bit of a messy architecture. I want to start soon to clean this up and split the PoDoFo library in two libraries: libpodofo-base and libpodofo. The base library will contain all the stuff required for low level PDF modifications (PdfParser, PdfWriter, filters, objects ...) and will only have a dependency on zlib. Libpodofo will build on top on this library and provide stuff like PdfDocument, PdfFont, PdfPainter and depend on all the other libraries. I hope to make these changes during November. So, excuse my little rant about PoDoFo in general. Now to your questions. Am Sunday 17 October 2010 schrieb Radoslaw Golebiewski: > Hi Dominik, > > Today I had a walk with my little baby and while pushing the pram I thought > about a few things that are not clear or I find difficult in this/our > project. > 1) Licenses. > I used PoDoFo for my project at work. That means the library has been bound > with a commercial product. I am a little bit familiar with all the licenses > but I do not understand the nuances. PoDoFo uses a few other libraries in > its own stuff but each library (including PoDoFo) uses different license: > - PoDoFo - GPL and LGPL, > - libpng - libpng license > - libjpeg - a license, > - zlib - zlib license, > - freetype2 - Free Type License > There is a simple statement on the project web site about how to use but > for me it is not convincing. For the potential users could we (as > community) ask someone to help to clarify it. Or may be there exists such > an explanation already. I think this would help to clarify usage of > PoDoFo. The complexity of the OpenSource License Ecosystem is a major drawback for adoption of OpenSource libraries in commercial projects. Most developers simply do not understand the differences between licenses (not there fault of course) and companies are of course careful with this topic. From my understanding, it is ok to link to PoDoFo and these libraries in this configuration and that is why I chose LGPL. Still, I would not want to give any legal advice on this topic because (i) I am no layer and (ii) and do not know how I/we would be liable in case this advice is wrong in certain cases. We could link to one of the FSF web pages which have explanations for these licenses, but honestly, I do not think they make the issue much more clear. > 2) Project dependencies. > On my work project we use a few libraries. The main external library is > wxWidgets. Recently we added PoDoFo library as a result of our customer > requesting a feature. This project has been lasting for 2 years so as new > versions appeared we upgraded and tested the new release. This is a problem > with dependencies that when they creep new testing is required. > I think the project website should state somewhere to which versions the > library dependencies have been tested. I think a Wiki would be good to keep such information of users and which configurations they successfully used. In general, we always support the latest version. But you are right, I can at least name the versions I currently work with. I would love if the webpage would get more updates... Right now have to see that I have enough time to work on the code and integrate all contributions, though. > 3) Library compilation setup > I believe that on Windows platforms It is quite time consuming to setup all > the compilation environment (we had it with Visual Studio). This fact may > put off some of the new users that may want to use this library but may not > have sufficient experience with compilers. The setup requires compilation > of dependent libraries and they are not easy to setup too. On Linux > machines it may be easy but Linux is not the only potential user. I > believe that at the moment most commercial desktop development is carried > out for Windows (I am not a fan of this OS though) and setup for this OS > should be made easier. In my project we created a solution (a super > project) that contained all combined and dependent projects that one can > rebuild with a simple mouse click. The result of compilation is a set of > working libraries that our project interfaces to. I agree, compiling PoDoFo on Windows always bothers me - not because of our own cmake build setup - but because it is a real PITA to build freetype, cppunit, .... . In the beginning of the project, we had a VC solution bundled with our project, but as main development happens under Linux right now, it was never up2date and I think it is worse to have a not working VS solution than having none. Always bundling all dependencies is honestly to much work for me. But if someone volunteers to do though, I do not see any problem to host it on Sourceforge for download. > 4) Specification to which PoDoFo project is developed. > Can one specify which parts of specifications have been implemented? E.g. > pdf documents can be generated to 1.3, 1.4, 1.5 and higher versions. Have > we got specifications and can we say that documents can be generated which > are fully compatible with 1.3 or higher versions? This a general question > before I had a look at the specification This might need more clarification on the web page as well. As I stated above, the low level part of PoDoFo should be almost complete. We should be able to read and write any PDF specification. If something does not work in this area, this is a major bug. Regarding high level features, we support only parts of every specification by a high-level API. E.g. only certain types of annotations are supported by our high level API. Still, every user can generate any type of annotation in any PDF specification version by using our low level API. Usually, the high level API is only a thin layer which adds certain keys to low level PDF objects. > > 5) With regards to your last email I will have a look at PoDoFo test units > and verify those related to the two reviewed sets of classes (PdfArray, > PdfColor). I checked all tests, but it would be great if you could also work with our test suite. > 6) I would prefer for someone to review any of my changes to be commited. > That means I would prefer to sent you my patches and you to review them. Ok, I will continue to review your patches. > 7) Is there any PoDoFo forum for developers where things like that could be > discussed? Maybe we can continue our discussion on our mailinglist podofo- [email protected] . Usually, all discussion happens there and I think other could also benefit from your discussion. I hope you do not mind if I set the ML on CC for this mail already. If you do not want to talk about your specific usage of PoDoFo in public, you can send me also a private mail. Cheers, Dom > > Thanks > Radek -- Dominik Seichter - [email protected] - http://domseichter.blogspot.com KRename - http://www.krename.net - Powerful batch renamer for KDE KBarcode - http://www.kbarcode.net - Barcode and label printing PoDoFo - http://podofo.sf.net - PDF generation and parsing library
signature.asc
Description: This is a digitally signed message part.
------------------------------------------------------------------------------ Download new Adobe(R) Flash(R) Builder(TM) 4 The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly Flex(R) Builder(TM)) enable the development of rich applications that run across multiple browsers and platforms. Download your free trials today! http://p.sf.net/sfu/adobe-dev2dev
_______________________________________________ Podofo-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/podofo-users
