【问题标题】:How to set title and author for pdf (swift, UIKit)如何为pdf设置标题和作者(swift,UIKit)
【发布时间】:2021-10-16 16:48:44
【问题描述】:

如何为这样生成的 PDF 设置标题和作者等元数据?

            let fmt = UIMarkupTextPrintFormatter(markupText: html)

            let render = UIPrintPageRenderer()
            render.addPrintFormatter(fmt, startingAtPageAt: 0)

            let page = CGRect(x: 0, y: 0, width: 595.2, height: 841.8)

            render.setValue(page, forKey: "paperRect")
            render.setValue(page, forKey: "printableRect")
            
            let pdfData = NSMutableData()
            
            let pdfMetaData = [
                kCGPDFContextCreator: "xxx",
                kCGPDFContextAuthor: "xxx",
                kCGPDFContextTitle: "xxx"
            ]

            UIGraphicsBeginPDFContextToData(pdfData, .zero, pdfMetaData)


            for i in 0..<render.numberOfPages {
                UIGraphicsBeginPDFPage();
                render.drawPage(at: i, in: UIGraphicsGetPDFContextBounds())
            }

            UIGraphicsEndPDFContext();

如您所见,我只将 PDF 生成为数据。 如果我分享这些数据,我会得到一张这样的表格:

如您所见,标题为空,您只能看到应用徽标。我想要的是这样的头条:

当我将它保存到文件时,名称也是“PDF 文档”! :(

我认为这行代码可以解决它:

let pdfMetaData = [
                kCGPDFContextCreator: "xxx",
                kCGPDFContextAuthor: "xxx",
                kCGPDFContextTitle: "xxx"
            ]

            UIGraphicsBeginPDFContextToData(pdfData, .zero, pdfMetaData)

感谢您的宝贵时间!布托什

编辑:这个标题(如第二张图片)甚至是 PDF 标题吗?

【问题讨论】:

    标签: swift pdf uikit pdf-generation core-graphics


    【解决方案1】:

    你可以像这样设置pdf信息

    let pdfInfo = [kCGPDFContextCreator : "App Name", kCGPDFContextTitle : "Title"]
    UIGraphicsBeginPDFContextToData(pdfData, .zero, pdfInfo)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-07
      • 1970-01-01
      • 2021-08-28
      • 2010-12-08
      • 1970-01-01
      • 1970-01-01
      • 2020-05-21
      • 1970-01-01
      相关资源
      最近更新 更多