我正在尝试使用CGPDFDocumentRef
显示pdf。我被卡在中间,因为我不知道在那之后需要做什么才能显示在我的观点上:
MyViewController.m:
- (void)viewDidLoad
{
[super viewDidLoad];
NSURL *pdfURL = [[NSBundle mainBundle] URLForResource:@"TestPage" withExtension:@"pdf"];
CGPDFDocumentRef PDFDocument = CGPDFDocumentCreateWithURL((__bridge CFURLRef)pdfURL);
CGPDFPageRef PDFPage = CGPDFDocumentGetPage(PDFDocument, 1);
}
必须将PDF页面添加到上下文中。我提到了一些代码,但我不明白如何将pdf页面添加到上下文并在视图中显示它?
答案 0 :(得分:1)
使用QLPreviewController
来代替显示没有网页视图的PDF的简单方法。此视图控制器还使PDF共享/打印变得简单。
答案 1 :(得分:0)
您必须创建UIView
子类并覆盖drawRect
-(void)drawRect:(CGRect)rect
{
CGPDFPageRef page = CGPDFDocumentGetPage(document, currentPage);
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSaveGState(ctx);
CGContextTranslateCTM(ctx, 0.0, [self bounds].size.height);
CGContextScaleCTM(ctx, 1.0, -1.0);
CGContextConcatCTM(ctx, CGPDFPageGetDrawingTransform(page, kCGPDFCropBox, [self bounds], 0, true));
CGContextDrawPDFPage(ctx, page);
CGContextRestoreGState(ctx);
}
document
和currentPage
CGPDFDocumentRef document;
int currentPage;
可以在initWithFrame
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
self.backgroundColor = [UIColor whiteColor];
NSString *pathToPdfDoc = [[NSBundle mainBundle] pathForResource:@"aa" ofType:@"pdf"];
NSURL *pdfUrl = [NSURL fileURLWithPath:pathToPdfDoc];
document = CGPDFDocumentCreateWithURL((CFURLRef)pdfUrl);
currentPage = 1;
totalPages = (int)CGPDFDocumentGetNumberOfPages(document);
}
return self;
}