Hello, as promised in some places I am posting another status update for the pdfmm/PoDoFo merge situation. Short news: I finished all the big refactors/reviews that I wanted to hand over for pdfmm 0.10, that wants to become PoDoFo-next/PoDoFo 1.0.
The ETA of the previous status update was missed because of a busy schedule on unrelated tasks and also lot of initially unintended features that were actually delivered to pdfmm, like better text extraction[1] or more PdfImage decoding options[2]. The last very big update that I delivered is the long promised PdfField/PdfAnnotation hierarchy/ownership refactor[3].Basically the main issues with PdfField/Annotation API were: - It wasn't always clear who was responsible to own the instances of these types, especially for PdfField instances; - It wasn't very handy to access these items collections, like the /Fields array in the /AcroForm, or the /Annots array in pages, or the field children list in /Kids array; - the hierarchies for both PdfField/PdfAnnotation were unclear and incomplete, and there wasn't a clear coupling between the two. All of this work can be visualized in the attached UML diagram with the new hierarchies. Deliver an API usability on pair with features of other modern languages is far to be easy in C++, showing several limits of the language or requiring features that are very hard to grasp for C++ developers (eg. creating custom iterators). Also the PDF specification is sometimes hard to model in a object oriented API. The plan now continues with the following tasks: - merge PoDoFo latest patches into pdfmm; - finish mechanical port of PoDoFo tools to pdfmm; - rename back pdfmm to PoDoFo; - create a PoDoFo-next branch in PoDoFo's github and upload all this work. More API changes are to be expected in the PoDoFo-next branch, before what should be 1.0, but I expect those to be not that big like the ones that happened in pdfmm repository. I consider it an imperative to create this PoDoFo-next branch and deliver all of this work under the PoDoFo name. My hope is to finish these tasks before the end of the year but I already know it will be hard: around 80% of the time of the last refactor was done on my free time, and probably the same will happen for the above tasks. Also, I am going to be father soon, so consider my attempts to deliver slowed down by family responsibilities in the future. I hope you appreciate this work and still hold on waiting it coming to PoDoFo github. Of course you can preview all the work on pdfmm repository[4], which I guarantee you is way more tested behind the scenes than what the public unit tests suggest, especially for the new features. Cheers, Francesco [1] https://github.com/pdfmm/pdfmm/commit/9229908cb89a7a62a697aed01be2c046f4154bd1 [2] https://github.com/pdfmm/pdfmm/commit/9d6fc3fca7a00217b8ee431aa831eab0fbf3b4fe [3] https://github.com/pdfmm/pdfmm/commit/05faca589b732cf0b78122dabfd4a39c285e9a2b [4] https://github.com/pdfmm/pdfmm
_______________________________________________ Podofo-users mailing list Podofo-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/podofo-users