如何使用PDFKit为iPad加载pdf



我有这段代码。

LoadPdf(void* currentView,NSData* content,NSString* urlName) {
UIView tmpView = (UIView)currentView;
NSData *data = content;
PDFDocument *pdfDocument = [[PDFDocument alloc] initWithData:data];
PDFView *pdfView = [[PDFView alloc] initWithFrame: CGRectMake(0, 0, 1000, 1000)];
pdfView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleTopMargin|UIViewAutoresizingFlexibleBottomMargin;
pdfView.autoScales = NO ;
pdfView.displayDirection = kPDFDisplayDirectionHorizontal;
pdfView.displayMode = kPDFDisplaySinglePageContinuous;
pdfView.displaysRTL = YES ;
[pdfView setDisplaysPageBreaks:YES];
[pdfView setDisplayBox:kPDFDisplayBoxTrimBox];
pdfView.document = pdfDocument;
[tmpView addSubview:pdfView];
}

但它并没有在视图中加载PDF。此外,如果I CGRectMake,则整个PDF不会显示在调试器中。如何初始化PDFView并加载它?

高Aan,

用以下代码在自己身上进行了测试:

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIView *tmpView = [self view];
NSData *data = [NSData dataWithContentsOfFile: @"local File on disk.pdf"];
PDFDocument *pdfDocument = [[PDFDocument alloc] initWithData:data];
PDFView *pdfView = [[PDFView alloc] initWithFrame: CGRectMake(0, 0, 1000, 1000)];
pdfView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleTopMargin|UIViewAutoresizingFlexibleBottomMargin;
pdfView.autoScales = NO ;
pdfView.displayDirection = kPDFDisplayDirectionHorizontal;
pdfView.displayMode = kPDFDisplaySinglePageContinuous;
pdfView.displaysRTL = YES ;
[pdfView setDisplaysPageBreaks:YES];
[pdfView setDisplayBox:kPDFDisplayBoxTrimBox];
pdfView.document = pdfDocument;
[tmpView addSubview:pdfView];
}

并且它显示PDF而没有问题。

我唯一找到的是

UIView tmpView = (UIView)currentView;

你静态地分配了tmpview,它应该是.

UIView *tmpView = (UIView *)currentView;

否则,请测试您的数据是否为有效的Pdf。

我发现了一篇非常好的文章,详细解释了如何使用PDFView。辅导的

Swift中的一些代码。我知道你在Objective-C中问过这个问题,但既然你是iOS用户,你应该能够理解上下文。

if let path = Bundle.main.path(forResource: "MFI_2018_01", ofType: "pdf") {
let url = URL(fileURLWithPath: path)
if let pdfDocument = PDFDocument(url: url) {
pdfView.displayMode = .singlePageContinuous
pdfView.autoScales = true
// pdfView.displayDirection = .horizontal
pdfView.document = pdfDocument
}
}

最新更新