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

Reply via email to