首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在swift中显示CGPDFDocument?

如何在swift中显示CGPDFDocument?
EN

Stack Overflow用户
提问于 2016-04-26 19:39:00
回答 2查看 4.6K关注 0票数 0

嗨,我有一个CGPDFDocument对象。我希望通过在我的应用程序中显示或使用外部应用程序打开此文档。这是我到目前为止拥有的代码。在SWIFT中

代码语言:javascript
复制
 let cfData = CFDataCreate(kCFAllocatorDefault, UnsafePointer<UInt8>(data.File.bytes), data.File.length)
 let cgDataProvider =  CGDataProviderCreateWithCFData(cfData)
 let cgPDFDocument  =  CGPDFDocumentCreateWithProvider(cgDataProvider)
EN

回答 2

Stack Overflow用户

发布于 2016-09-29 06:44:36

在objective-c中this answer的帮助下,下面是一个在swift中工作的示例:

代码语言:javascript
复制
override func draw(_ rect: CGRect) {

    super.draw(rect)

    let context: CGContext = UIGraphicsGetCurrentContext()!
    context.setFillColor(red: 1.0,green: 1.0,blue: 1.0,alpha: 1.0)
    context.fill(self.bounds)
    let filepath = (Bundle.main.path(forResource: "Example", ofType: "pdf"))! as String
    let url = URL(fileURLWithPath: filepath)
    let pdf: CGPDFDocument! = CGPDFDocument(url as CFURL)
    let page: CGPDFPage = pdf.page(at: 1)!
    let pageRect: CGRect = page.getBoxRect(CGPDFBox.mediaBox)
    let scale: CGFloat = min(self.bounds.size.width / pageRect.size.width , self.bounds.size.height / pageRect.size.height)
    context.saveGState()
    context.translateBy(x: 0.0, y: self.bounds.size.height)
    context.scaleBy(x: 1.0, y: -1.0)
    context.scaleBy(x: scale, y: scale)
    context.drawPDFPage(page)
    context.restoreGState()
}

上面的代码是您将在其中显示pdf的视图的drawRect方法。只需将此视图作为子视图添加到您的viewController viewDidLoad方法中,就完成了。

票数 6
EN

Stack Overflow用户

发布于 2016-04-26 19:47:34

使用以下代码,您可以轻松地在swift中显示CGPDF文档:

代码语言:javascript
复制
// Get the document's file path.
let path = NSBundle.mainBundle().pathForResource("Newsletter.pdf", ofType: nil)

// Create an NSURL object based on the file path.
let url = NSURL.fileURLWithPath(path!)

// Create an NSURLRequest object.
let request = NSURLRequest(URL: url)

// Load the web viewer using the request object.
webView.loadRequest(request)

捆绑的文档标题为"Newsletter.pdf“,"webView”是UIWebView对象的IBOutlet。

PDF文档将很好地显示,并且用户将能够滚动该文档、放大和缩小等等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36863864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档