내가있는 UIView TTT_WantsToBeRazorSharpView
라는 사용자 지정을 푼다 품질 아이폰 OS에게
를 렌더링함으로써 UIView의에서 PDF를 생성 할 수 있습니다에서 PDF를 생성합니다. 이보기는 아무것도하지 않습니다,하지만 지금보기 (IB
에 한 번)을 UIViewController
에 세 번 그려아이폰 OS는 : UIView의 텍스트가 흐릿
NSString*txtPleaseHelp = NSLocalizedString(@"Hello, am I blurry again?",@"");
CGContextShowTextAtPoint(ctx, 10, 50, [txtPleaseHelp cStringUsingEncoding:NSMacOSRomanStringEncoding], [txtPleaseHelp length]);
이러한 라인 코드에 두 번있는 텍스트를 그릴 (아래 이미지 비교) :
를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이고 두 번째 코드는 그려지지 않았지만 rect의 쉼표 값 (361.5, 251.5, 301.5, 80.5)으로 인해 괜찮습니다.
이 사진 참조 :
을하지만 내 문제는 내가 PDF 문서로보기를 렌더링하는 경우가 흐릿 지금입니다!
있는 test.pdf 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
와아! 대단히 감사합니다! 그 완벽한 솔루션입니다 :-) (지금 shouldRasterize 플래그 및 drawLayer 메서드를 알고 있어요 :-) – Flori
이 코드를 UIViewController 사용할 수 있습니까? [self.view layer] .delegate = self; drawLayer : inContext :를 구현하는 것이 작동하지 않는 것 (그리고 충돌) – Flori