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

时间:2017-07-28 16:49:57

标签: objective-c swift ios11

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

但我无法做到这一点。

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

先谢谢你。

3 个答案:

答案 0 :(得分:6)

对于新的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)

答案 1 :(得分:5)

这是基于Objective-C的示例

  1. 确保将PDFKit框架添加到项目中        enter image description here

  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;

  5. 正如其他许多人所做的那样,我们使用webview来展示PDF内容并与之互动。通过阅读框架并尝试一些示例,PDFKit作为一个深思熟虑的设计,可以开箱即用,并简化开发。

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

    if ([UIPrintInteractionController canPrintData: fileData]) {
    

    用PDFKit替换webview实现后,我只需使用dataRepresentation方法获取fileData,其余的只是按原样运行

    NSData *fileData = [pdfDocument dataRepresentation];
    

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

答案 2 :(得分:3)

这是基于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;