如何使用pdfkit ios 11打开pdf文件?

How to use pdfkit ios 11 to open pdf file?

我正在尝试使用新的 iOS 11 框架 pdfkit 打开 PDF 文件。

但我做不到。

所以请帮助我使用 pdfkit 框架打开文件。

提前致谢。

对于新的 PDFKit,

你需要import PDFKit

然后创建一个PDFView的视图,给一个PDFDocument来查看文档。检查以下代码以供参考。

let pdfView = PDFView(frame: self.view.bounds)
let url = Bundle.main.url(forResource: "pdfFile", withExtension: "pdf")
pdfView.document = PDFDocument(url: url!)
self.view.addSubview(pdfView)

这是基于 Objective-C 的示例

  1. 确保将 PDFKit 框架添加到项目中

  2. 导入框架头文件 #import <PDFKit/PDFKit.h>

  3. 创建 PDFDocument 实例。在我的例子中,它使用的是 NSURL

    // fileURL is NSURL file path instance created using base64 pdf content PDFDocument *pdfDocument = [[PDFDocument alloc] initWithURL:fileURL];

  4. 创建 PDFView 实例并将 pdfDocument 文档分配给它

    PDFView *pdfView = [[PDFView alloc] initWithFrame:CGRectMake(0, 0, 500, 500)]; pdfView.document = pdfDocument; pdfView.displayMode = kPDFDisplaySinglePageContinuous; pdfView.autoScales = true; pdfView.layer.borderWidth = 2; pdfView.layer.borderColor = [UIColor blueColor].CGColor;

正如许多其他人所做的那样,我们使用 webview 来显示 PDF 内容并与之交互。阅读整个框架并尝试一些示例,PDFKit 是一个深思熟虑的设计,其中提供了许多开箱即用的功能并简化了开发。

例如,我们在应用程序中具有 AirPrint 功能,该功能具有确定可打印性的检查

if ([UIPrintInteractionController canPrintData: fileData]) {

用 PDFKit 替换 webview 实现后,我只需要使用 dataRepresentation 方法来获取 fileData,其余的就可以正常工作了

NSData *fileData = [pdfDocument dataRepresentation];

请检查 this WWDC page 了解更多详情

这是基于 Objective-C 的示例

#import <PDFKit/PDFKit.h>



PDFView *View = [[PDFView alloc] initWithFrame: self.view.bounds];
View.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleTopMargin|UIViewAutoresizingFlexibleBottomMargin;
View.autoScales = NO ;
View.displayDirection = kPDFDisplayDirectionHorizontal;
View.displayMode = kPDFDisplaySinglePageContinuous;
View.displaysRTL = YES ;
[View setDisplaysPageBreaks:YES];
[View setDisplayBox:kPDFDisplayBoxTrimBox];
[View zoomIn:self];
[self.view addSubview:View];

NSURL * URL = [[NSBundle mainBundle] URLForResource: @"test" withExtension: @ "pdf" ];
PDFDocument * document = [[PDFDocument alloc] initWithURL: URL];
View.document = document;