开发者

embedding fonts in flex for generating pdf file?

I am trying to embed arial bold font but getting run time error

font ARIALBD.TTF w开发者_JAVA技巧ith Identity-H is not recognized

i am embedding the font in purepdf library for generating the pdf file via flex app.

here in the code.

    [Embed( source="ARIALBD.TTF", mimeType="application/octet-stream" )]

    public static const arialb:Class;


if ((style & Font.BOLD) == Font.BOLD)
f = BaseFont.createFont(arialb, BaseFont.IDENTITY_H);


PurePDF will accept only UNICODE Fonts

check your font is a Unicode font or not

try with a Unicode font and also write the extension *.TTF in lowercase *.ttf as the check for extension in PurePDF BaseFont class is as follows.

else if ( StringUtils.endsWith( nameBase, ".ttf" ) || StringUtils.endsWith( nameBase, ".otf" ) || nameBase.toLowerCase()
                .indexOf( ".ttc," ) > 0 )           {
                if( encoding == IDENTITY_H || encoding == IDENTITY_V)
                {
                    fontBuilt = new TrueTypeFontUnicode();
                    TrueTypeFontUnicode(fontBuilt).init( name, encoding, embedded, ttfAfm, false, forceRead );
                } else {
                    fontBuilt = new TrueTypeFont();
                    TrueTypeFont(fontBuilt).init( name, encoding, embedded, ttfAfm, false, forceRead );
                    TrueTypeFont(fontBuilt).fastWinansi
= encoding == CP1252;
                }           }


You need to put it at the root of the project if you reference it this way, if it's in the same package as the class you need to add the package path to the Embed path. The Embed path is relative to the build path not the class which is referencing it, that class is also being referenced from the build path during compilation but it doesn't use paths relative to the class when resolving the Embeds.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜