Файл PDF загружается в CGPDFDocumentRef, но он не отображается на экране
Я хотел бы использовать CGPDF API для отображения и управления PDF на IPAD, но, во-первых, я пытаюсь просто показать PDF на моем виде простым способом (без настройки экрана). Я не знаю, почему PDF не отображается в моем приложении, возможно, я делаю что-то неправильно. Я использую NSLOG для подсчета страниц, он работает, но PDF не появляется, просто появляется белый фон на экране моего эмулятора.
Вот мой код:
//
**// ViewController.h**
// MeuCGPDF
//
// Created by admin on 01/11/13.
// Copyright (c) 2013 admin. All right reserved.
//
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@end
----------------------------------------------------------
//
**// ViewController.m**
// MeuCGPDF
//
// Created by admin on 01/11/13.
// Copyright (c) 2013 admin. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSString *pathToPdfDoc = [[NSBundle mainBundle] pathForResource:@"livro" ofType:@"pdf"];
NSURL *pdfUrl = [NSURL fileURLWithPath:pathToPdfDoc];
CGPDFDocumentRef document = CGPDFDocumentCreateWithURL((CFURLRef)pdfUrl);
size_t pageCount = CGPDFDocumentGetNumberOfPages(document);
CGPDFPageRef page = CGPDFDocumentGetPage(document, 1);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextDrawPDFPage(context, page);
NSLog(@"Paginas: %zu", pageCount);
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
----------------------------------------------------------
1 ответ
Если вы хотите просто отобразить PDF в веб-представлении, тогда:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.pdfWebView.delegate=self;
[self displayPdfinWebView];
}
-(void)displayPdfinWebView {
NSString *path = [[NSBundle mainBundle] pathForResource:@"YourPDFname" ofType:@"pdf"];
NSURL *targetURL = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
[self.pdfWebView loadRequest:request];
}
Если вы хотите иметь дополнительные функции, такие как масштабирование с двойным касанием или сжиманием, я не рекомендую использовать WebView из-за нехватки производительности и качества. Есть Apple-код для ZoomingPdfViewer, который добавляет TileLayer с levelsOfDetail n levelsOfDetailBias, который подходит для нормальных размеров PDF.
Надеюсь, это поможет.