可以在Swift中为生成的PDF添加密码吗?

时间:2018-10-26 18:24:21

标签: ios swift pdf-generation

我发现了在将数据写入磁盘时如何添加密码

pdfDocument.write(to: encryptedFileURL, withOptions: [PDFDocumentWriteOption.userPasswordOption : "pwd",
PDFDocumentWriteOption.ownerPasswordOption : "pwd"])

但就我而言,我生成PDF文件的方式有所不同。我从数据生成它,然后直接在MailComposer中将其转换并发送为:

if let pdfData = printPageRenderer.drawPDFUsingPrintPageRenderer(printPageRenderer: printPageRenderer) {
    mailComposer.addAttachmentData(pdfData as Data, mimeType: "application/pdf", fileName: "PDF")
}

但是,如果我没有在FileManager中保存文件并且没有使用PDFKit,那么我找不到方法如何向PDF文件添加密码。 有什么选择吗?很高兴知道这一点。任何提示或帮助,不胜感激! 预先感谢!

1 个答案:

答案 0 :(得分:0)

我假设您在iOS中使用UIGraphicsPDFRenderer来获取PDF数据。

初始化UIGraphicsPDFRenderer时,可能必须提供UIGraphicsPDFRendererFormat。

在此UIGraphicsPDFRendererFormat中,可以设置format.documentInfo。 该documentInfo具有

  const CFStringRef kCGPDFContextUserPassword 
  const CFStringRef kCGPDFContextOwnerPassword;

希望您能得到喜欢的东西。