[fpc-pascal] fcl-pdf custom font from memstream

Mattias Gaertner nc-gaertnma at netcologne.de
Thu Nov 2 16:56:55 CET 2023



On 02.11.23 16:42, Mattias Gaertner via fpc-pascal wrote:
> 
> 
> On 02.11.23 14:00, Michael Van Canneyt via fpc-pascal wrote:
>>
>>
>> On Thu, 2 Nov 2023, Alexey Torgashin via fpc-pascal wrote:
>>
>>>
>>>>> How to load a custom font from a stream instead of from a file?
>>>>
>>>> Currently no way to my knowledge,
>>>
>>> But fpparsettf.pp has this:
>>>
>>>  TTFFileInfo = class(TObject)
>>>  ...
>>>  public
>>>    // Load a TTF file from file or stream.
>>>    Procedure LoadFromFile(const AFileName : String);
>>>    Procedure LoadFromStream(AStream: TStream); virtual;
>>
>> Yes, but the font cache/manager in fpttf does not support this, and 
>> all font access happens
>> through the font cache. (at least that is how I understood Mattias' 
>> request)
> 
> Yes. I added two functions and extended the example.
> 
> To my surprise it turns out that a ttf file is loaded up to 3 times:
> Once for AddFont, once for gTTFontCache and once in SaveDocument.
> 
> SaveDocument now uses the TPDFFont stream if available, so only 2 times.

s/SaveDocument/TPDFDictionary.WriteDictionary/

> 
> Wouldn't it be better if TPDFDocument.Fonts and gTTFontCache share the 
> stream?
> 
> 
> Mattias
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal


More information about the fpc-pascal mailing list