2012-05-04 12 views
1

私は、iOSでPDFにテキストを描画するために、以下の使用しています:CGContextShowTextAtPointとユーロ記号

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

ユーロ記号が四角形として表示されます。

いくつか提案がありますか?

ps。私は[str1 UTF8String]でも同じ結果を試しています

答えて

2

ほとんどの場合、CoreGraphic同等物ではなくNSStringメソッド- (CGSize)drawAtPoint:(CGPoint)point withFont:(UIFont *)fontまたは- (CGSize)drawInRect:(CGRect)rect withFont:(UIFont *)fontを使用する方が簡単です。アップルはあなたに正しい変換、エンコードなどのことを心配しています。

+0

投稿コードの最後の行を次のように切り替えると、 '[str1 drawInRect:CGRectMake(25、y-60、500、rowHeight)withFont:[UIFont fontWithName:@" Helvetica "size:14.0]]; '何も表示されません –

+0

drawInRectを呼び出す前に別の塗りつぶし色を設定しましたか?あなたの文脈の背景色のままであれば、何も見えません。 –

+0

あなたはこのようになります: 'CGContextSetFillColorWithColor(pdfContext、[UIColor blueColor] .CGColor); CGWectMake(25、y-60、500、rowHeight)withFont:[UIFont fontWithName:@ "Helvetica" size:14.0]];この場合、何も表示されません。:CGContextSetFont:無効なコンテキスト0x0 –

0

私には何かがあるかどうかわかりませんが、の4番目のパラメータにkCGEncodingFontSpecificを使ってみましたか?それができない場合は、Core Textを使用する必要があります。私はCore Textを使用したことはありませんが、テキスト生成は単純なol 'Quartz 2Dよりも少し頑強なようです。私も、私はちょうど置いた上でUIView秒からPDFを生成しているジョナサン・cichonの提案を@に

は、(彼は、などのNSStringのdrawAtPointを提案し、私は実際には、昔ながらのUILabel Sを使用!)、その後、私のpdfContextにあることをレンダリングし、それにも明らかな欠点があります。すでにPDFの文脈を辿っているのであれば、kCGEncodingFontSpecificがそれをしないなら、Core Textを追求することをお勧めします。このトピックについての他の考えは、SO discussionを参照してください。

最終的には、PDFの生成が少し制限されていることがわかりました(ただし、難しいことに、iOSでPDFを作成できることは驚きです)。私の場合は、PDFにフォントが埋め込まれていないことに不満を抱いていました。私は、あまり一般的ではないフォントでレンダリングされたテキストのイメージを作成しました。

+0

kCGEncodingFontSpecificは役に立たなかった、投稿する前にそれを試した –

+0

次にCore Text 。 – Rob

関連する問題