That is very encouraging ! I don't really need to support all possible encodings , but at least the more popular ones. I will start reading the Code relating to this and hopefully will be able to lock some time next week .
so I should start by getting a good understanding of the current state of the Pdf*Encoding classes ? Thanks a lot for your help. I hope I can make it work and contribute a nice patch ;) D. > Hi, > > I think what you need to do, is to invest more into encoding support. The > font > types are basically there and reading the width out of a font is easy, once > you made the mapping from character code to glyph. And that is what the > encoding is for. > > So, I think 50h should be enough to implement support for the most important > missing encodings (mostly PdfDifferenceEncoding and custom encodings for > PdfCidFont). But, if you want to implementate all of the possible encodings > allowed by the PDF specification, it will cost you more time. I think, best > is > to take a look at the PDF specification and see what you need from it. > > Best regards, > Dom > > Am Montag 17 Mai 2010 schrieb xTeo: > >> Hi , >> >> So I looked into poppler and its licence fee is not really within my reach >> . >> >> I am evaluating the possibilities to take some time to write support for >> more font subtype into Podofo. >> my current need would really be about reading font geometry information >> ( glyph width and line spacing ) >> in order to detect word bounds on screen. >> >> would you be able to estimate how much time that could take ? provided >> that I am an experienced c++ developer (10+ years) ? >> I really just need to know if this is something that might be done in >> 50h or less or more like 100h+ ? >> I have a limited amount of time to complete this project and I wouldn't >> be able to afford much more that 50h I think . >> >> Thanks a lot for your Help . >> >> Damien >> >> >>> Hi, >>> >>> No, I am afraid. To draw a box around the font, you will need to be able >>> to access the glyph width of the font to determine the actual width of >>> the box you have to draw. I cannot think of another way to achieve that. >>> You might want to look at poppler, as this library is more oriented >>> towards rendering and might give you better access to font metrics. >>> >>> Best regards, >>> Dom >>> >>> Am Montag 03 Mai 2010 schrieb xteo: >>> >>>> This is great News !! >>>> >>>> Make sense I have been reading the PDF spec and other kind of annotation >>>> are not too hard to implement directly , but once I there if I build >>>> nice getter I will contribute them ;) >>>> >>>> hopefully this works out well , and once my application link against >>>> Podofo it will tempting to sort my font problem. >>>> >>>> I have a small question , not more PDF than PoDoFo related but if you >>>> have an idea it would be really nice, >>>> >>>> do you know what is the general approach to highlight the text of a >>>> search result ? at the moment I am trying something like scanning the >>>> text and when I find the text I am looking for trying to locate its >>>> bound on screen and create a semi transparent Box around it . >>>> my approach current fail because without font I can not locate the text >>>> in the screen with accurately . do you know if there is a better/simpler >>>> way ? >>>> >>>> just fishing really :) >>>> >>>> Thanks a lot for your help >>>> >>>> Damien >>>> >>>> On 3 May 2010, at 23:08, Dominik Seichter wrote: >>>> >>>>> Hi, >>>>> >>>>> Opening existing PDF files, adding annotations to them and saving them >>>>> is perfectly doable using PoDoFo, even if for example font encodings >>>>> are not supported directly. >>>>> >>>>> PoDoFo supports any kind of PDF annotation, only the basic ones are >>>>> supported using the API though. You can create any other annotation by >>>>> adding the keys and values described in the PDF Reference to the >>>>> dictionary returned by PdfAnnotation::GetObject()->GetDictionary(). >>>>> >>>>> Adding API support for other annotations is merely a matter of adding >>>>> getters and setters for the keys and values you would add otherwise >>>>> directly to the dictionary as described above. >>>>> >>>>> Best regards, >>>>> Dom >>>>> >>>>> Am Montag 03 Mai 2010 schrieb xteo: >>>>> >>>>>> Hi , >>>>>> >>>>>> I need to asses how much time doing this plus implementing it into my >>>>>> app is gonna take before I start going that direction, but I think its >>>>>> something I might be able to do. >>>>>> I have currently left this feature on my "Maybe list" until I can see >>>>>> if I will have time . >>>>>> >>>>>> looking at the feature set of PoDoFo I was also very interested into >>>>>> the Annotation feature . >>>>>> >>>>>> here is was I would like to be able to do : >>>>>> >>>>>> Open a PDF >>>>>> go to specific pages and add Annotation ( of several kinds ) and save >>>>>> back the PDF . >>>>>> >>>>>> is that something PoDoFo can do ? even if some part of the documents ( >>>>>> like fonts ) are not supported by PoDoFo ? >>>>>> >>>>>> reading the documentation and the code I notice that not all >>>>>> Annotation type are supported, if that still the case. It seams that >>>>>> the basic one are supported already that is great, how much work is >>>>>> involve in supporting some other one ? I can't really see what is >>>>>> missing ? >>>>>> >>>>>> Thanks a lot >>>>>> >>>>>> Damien >>>>>> >>>>>> On 3 May 2010, at 22:35, Dominik Seichter wrote: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> I think the issue is always that PdfEncodingFactory is unable to >>>>>>> create a encoding for most fonts. I changed current SVN to throw an >>>>>>> exception instead of returning a NULL pointer. This should prevent >>>>>>> the crashes, at least. >>>>>>> >>>>>>> If you really need this feature, I suggest fixing PdfEncodingFactory >>>>>>> to be able to create the encodings used in your fonts. >>>>>>> Still, there might be some changes necessary to PdfFontMetrics to >>>>>>> allow creating every kind of font from the font data embedded in the >>>>>>> PDF file, but I think getting the encodings done is the first step. >>>>>>> >>>>>>> Best regards, >>>>>>> Dom >>>>>>> >>>>>>> Am Sonntag 02 Mai 2010 schrieb xteo: >>>>>>> >>>>>>>> Hi >>>>>>>> >>>>>>>> I was looking into it more yesterday night and also found some case >>>>>>>> where TrueType font are crashing >>>>>>>> >>>>>>>> Currently the main reason I would like to have the font is to >>>>>>>> determine the length of the character into a BT/ET block >>>>>>>> >>>>>>>> I have search functionality in my app where I have a copy of the >>>>>>>> text per page and search that , but once I take the user to the >>>>>>>> right page l would like to highlight the search result block >>>>>>>> >>>>>>>> At the moment i can scan manually the code to get the start location >>>>>>>> of each text block and their size but without the font information I >>>>>>>> can't find where the text end , also if my search result was in the >>>>>>>> middle of a text block I would need to calculate where the part of >>>>>>>> the text I need to highlight start >>>>>>>> >>>>>>>> Once have figure that out I think it will also be quite easy to >>>>>>>> implement annotation in my application and also text selection / >>>>>>>> copy >>>>>>>> >>>>>>>> Maybe there is an other way to do that ? This is the only >>>>>>>> information that I really need from the font , the width of each >>>>>>>> char >>>>>>>> >>>>>>>> Thanks a lot for this library , I hope I can successfully integrate >>>>>>>> it into my project and hopefully contribute some code or fixes >>>>>>>> >>>>>>>> Damien >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> Sent from my iPad >>>>>>>> >>>>>>>> On 2 May 2010, at 11:38, Dominik Seichter <[email protected]> wrote: >>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> The relevant code, where PdfFontCID ist called with a NULL >>>>>>>>> PdfEncoding is only called, when you try to construct a PdfFont >>>>>>>>> from an existing object in a PDF file. Support for this is not very >>>>>>>>> good. It works with simple fonts, but PoDoFo is currently not able >>>>>>>>> to consturct the encoding for a CID font from a PDF file. So, >>>>>>>>> PoDoFo should not crash in this case, but maybe throw an exception >>>>>>>>> that this is not supported. >>>>>>>>> >>>>>>>>> What do you want to do excactly? Maybe we can find another >>>>>>>>> solution. >>>>>>>>> >>>>>>>>> Best regards, >>>>>>>>> Dominik >>>>>>>>> >>>>>>>>> Am Sonntag 02 Mai 2010 schrieb xteo: >>>>>>>>> >>>>>>>>>> Hi , >>>>>>>>>> >>>>>>>>>> I have recently started looking at podofo for one of my project >>>>>>>>>> that need PDF support . >>>>>>>>>> >>>>>>>>>> It look like a really great library !! >>>>>>>>>> >>>>>>>>>> to get started and make sure all was working , >>>>>>>>>> I builded the library in my project and replicate the code from >>>>>>>>>> the code that extract the text from a PDF . >>>>>>>>>> >>>>>>>>>> version downloaded from the website : 0.8.0 compiled on Mac . >>>>>>>>>> >>>>>>>>>> on some PDF its working fine and I get what I expect but on some >>>>>>>>>> other it crash . >>>>>>>>>> >>>>>>>>>> I have looked into it and fond the cause but I am missing a little >>>>>>>>>> bit of context to try to fix it : >>>>>>>>>> >>>>>>>>>> int : PdfFontFactory.cpp >>>>>>>>>> >>>>>>>>>> PdfFont* PdfFontFactory::CreateFont( FT_Library* pLibrary, >>>>>>>>>> PdfObject* pObject ) { >>>>>>>>>> ...... >>>>>>>>>> >>>>>>>>>> pFont = new PdfFontCID( pMetrics, NULL, pObject, false ); >>>>>>>>>> >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> This create a PdfFontCID with a NULL pPdfEncoding. >>>>>>>>>> >>>>>>>>>> This later leads to issue in the constructor when void >>>>>>>>>> PdfFontCID::Init( bool bEmbed ) is called and m_pEncoding is NULL >>>>>>>>>> . >>>>>>>>>> >>>>>>>>>> // The encoding is here usually a (Predefined) CMap from >>>>>>>>>> PdfIdentityEncoding: m_pEncoding->AddToDictionary( >>>>>>>>>> m_pObject->GetDictionary() ); >>>>>>>>>> ^^^^^^^^^^^ is NULL >>>>>>>>>> >>>>>>>>>> I am not sure what to make of the comment , I have try to pass >>>>>>>>>> various encoding to PdfFontCID , but didn't managed to fix the >>>>>>>>>> problem . >>>>>>>>>> >>>>>>>>>> Please let me know if there is anything ovious that I am missing . >>>>>>>>>> >>>>>>>>>> Damien >>>>>>>>>> > > > -- Damien FAGNOU xTeo Ltd. Software at your fingertips London , UK ------------------------------------------------------------------------------ _______________________________________________ Podofo-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/podofo-users
