【问题标题】:Generate multi-page PDF from a NSView从 NSView 生成多页 PDF
【发布时间】:2017-02-23 03:06:48
【问题描述】:

我有一个多页文档,我使用 A4 大小的 NSView 来显示一个页面(一次一个页面)。我使用“前进/后退”按钮来控制页面选择。所以每次按下按钮时,都会在 NSView 中重新绘制正确的页面。图纸很简单,所以还不错。

但我不知道如何生成包含所有页面的多页 PDF 文档。有人给了我一些将 NSView 的内容转换为 PDF 的代码,我正在使用该代码生成单页 PDF,但我真的很喜欢将所有页面绘制成一个 PDF。

谁能告诉我如何修改以下代码来做到这一点?非常感谢。

//////

     var fn: String = fnBase

    for i in 0...TotalPage - 1 {

        // This will tell DrawRect to draw page i
        view.displayedPage = i

        let bounds = CGRect(origin: CGPointZero, size: view.frame.size)
        let data: NSData = view.dataWithPDFInsideRect(bounds)

        fn = fnBase + "\(i+1).pdf"

        data.writeToFile(fn, atomically: true)
    }

【问题讨论】:

    标签: swift pdf nsview


    【解决方案1】:

    我的解决方案:

    import Quartz
    
    var data = documentView.dataWithPDF(inside: NSMakeRect(0.0, 0.0, width, height))
    let pdfDocument = PDFDocument(data: data)!
    
    for i in 1..<pages {
        data = documentView.dataWithPDF(inside: NSMakeRect(0.0, CGFloat(i) * height, width, height))
        let pdfPage = PDFPage(image: NSImage(data: data)!)!
        pdfDocument.insert(pdfPage, at: pdfDocument.pageCount)
    }
    

    【讨论】:

    • 非常感谢。特卡尔托。这真的解决了我的问题。非常感激。格雷厄姆
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多