我使用以下方法从UIView生成PDF.所有这些都创建了PDF但却失去了质量:
方法1:
@implementation UIView(PDFWritingAdditions)
- (void)renderInPDFFile:(NSString*)path
{
CGRect mediaBox = self.bounds;
CGContextRef ctx = CGPDFContextCreateWithURL((__bridge_retained CFURLRef)[NSURL fileURLWithPath:path], &mediaBox, NULL);
CGPDFPageRef page;
CGContextDrawPDFPage(ctx, page);
CGPDFContextBeginPage(ctx, NULL);
// Also tried following commented lines but no luck
// CGContextSetFlatness(ctx, 0.1);
// CGContextSetAllowsAntialiasing(ctx, YES);
// CGContextSetAllowsFontSmoothing(ctx, YES);
// CGContextSetInterpolationQuality(ctx, kCGInterpolationHigh);
CGContextScaleCTM(ctx, 1, -1);
CGContextTranslateCTM(ctx, 0, -mediaBox.size.height);
[self.layer renderInContext:ctx];
CGPDFContextEndPage(ctx);
CFRelease(ctx);
}
@end
Run Code Online (Sandbox Code Playgroud)
方法2:
- (void)createPDFfromUIView:(UIView*)aView saveToDocumentsWithFileName:(NSString*)aFilename
{
// Creates a mutable data object for updating with binary data, like a byte array
NSMutableData *pdfData …Run Code Online (Sandbox Code Playgroud)