1

私はiOSでPDFにテキストを描くために以下を使用しています:

CGContextSelectFont (pdfContext, "Helvetica Bold", 14, kCGEncodingMacRoman);
NSString *str1 = [NSString stringWithString:@"€ 10"];  
CGContextShowTextAtPoint(pdfContext, 25, y-60 , [str1 cStringUsingEncoding:NSMacOSRomanStringEncoding], [str1 length]); 

ユーロ記号は正方形で表示されます。

何か提案はありますか?

ps。[str1 UTF8String]も試してみましたが、同じ結果になりました

4

2 に答える 2

2

ほとんどの場合、同等のCoreGraphicよりも- (CGSize)drawAtPoint:(CGPoint)point withFont:(UIFont *)fontNSStringメソッドを使用する方が簡単です。- (CGSize)drawInRect:(CGRect)rect withFont:(UIFont *)fontAppleは、正しい変換やエンコーディングなどの考え方をあなたに代わって処理します。

于 2012-05-05T01:23:36.143 に答える
0

それが何かをするかどうかはわかりませんが、kCGEncodingFontSpecificあなたはあなたの4番目のパラメータに使用してみましたCGContextSelectFontか?それでも問題が解決しない場合は、CoreTextを使用する必要があります。Core Textを使用したことはありませんが、テキスト生成は単純な古いQuartz2Dよりも少し堅牢なようです。

@ jonathan-cichonの提案に対して、私はUIViewちょうど置いたsからPDFを生成し(彼はNSStringdrawAtPointなどを提案しました。実際には古いものを使用UILabelしました!)、それをpdfContextにレンダリングしましたが、これにも明らかな欠点があります。 。すでにPDFコンテキストの道を進んでいる場合、kCGEncodingFontSpecificがそれを行わないのであれば、CoreTextを追求することをお勧めします。このトピックに関する他の考えについては、このSOディスカッションを参照してください。

最後に、PDFの生成には少し制限があることに気づきました(しかし、一方で、iOSがPDFを作成できるのは驚くべきことです)。私の場合、PDFにフォントが埋め込まれていないことに不満を感じていたため、あまり一般的ではないフォントでレンダリングされたテキストの画像を作成することになりました(問題で参照する正方形のブロックを取得していたため)。

于 2012-05-05T02:48:12.050 に答える