品質の低いiOSをレンダリングしてUIViewからPDFを生成する
と呼ばれるカスタムUIViewがありTTT_WantsToBeRazorSharpView
ます。このビューは何もしませんが、テキストを描画します
NSString*txtPleaseHelp = NSLocalizedString(@"Hello, am I blurry again?",@"");
CGContextShowTextAtPoint(ctx, 10, 50, [txtPleaseHelp cStringUsingEncoding:NSMacOSRomanStringEncoding], [txtPleaseHelp length]);
これで、ビューは3回UIViewController
(で1回IB
)、コードで2回、これらの線で描画されます(下の画像と比較してください)。
TTT_WantsToBeRazorSharpView *customViewSharp = [[TTT_WantsToBeRazorSharpView alloc] initWithFrame:CGRectMake(10,250, 300, 80)];
[self.view addSubview:customViewSharp];
TTT_WantsToBeRazorSharpView *customViewBlurryButIKnowWhy = [[TTT_WantsToBeRazorSharpView alloc] initWithFrame:CGRectMake(361.5, 251.5, 301.5, 80.5)];
[self.view addSubview:customViewBlurryButIKnowWhy];
最初のコード描画ビューはrazorsharpですが、2番目はそうではありませんが、rectのコンマ値(361.5、251.5、301.5、80.5)があるため、問題ありません。
この写真を参照してください:
しかし、私の問題は、ビューをPDFドキュメントにレンダリングすると、ぼやけてしまうことです。そして、理由がわからない、ここを参照してください:
およびPDFファイル自体Test.pdfhttps ://raw.github.com/florianbachmann/GeneratePDFfromUIViewButDontWantToLooseQuality/master/Test.pdf
ビューをPDFにレンダリングするための行:
//this is blurry, but why? it can't be the comma coordinates
CGRect customFrame1 = CGRectMake(10,50, 300, 80);
TTT_WantsToBeRazorSharpView *customViewSharp = [[TTT_WantsToBeRazorSharpView alloc] initWithFrame:customFrame1];
CGContextSaveGState(context);
CGContextSetTextMatrix(context, CGAffineTransformIdentity);
CGContextTranslateCTM(context, (int)customFrame1.origin.x, (int)customFrame1.origin.y);
[customViewSharp.layer renderInContext:context];
CGContextRestoreGState(context);
では、なぜrenderInContext:context
テキストがぼやけているのでしょうか。
私はあなたのすべてのヒントと助けに感謝します、私はあなたの勇敢な人のためにGitHubプロジェクトを作りました(ソース付き):https ://github.com/florianbachmann/GeneratePDFfromUIViewButDontWantToLooseQuality