我找到了如何在你把数据写入磁盘时添加密码,

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文件添加密码的方法。
有什么选择吗?很高兴知道这一点。任何提示或帮助都是感激的!
提前谢谢!

最佳答案

我假设您在iOS中使用uigraphicsdpfrenderer来获取PDF数据。
初始化uigraphicsdpfrenderer时,可能必须提供uigraphicsdpfrenderer格式。
在这个uigraphicsdpfrendereformat中,您可以设置format.documentInfo。
此文档信息具有

  const CFStringRef kCGPDFContextUserPassword
  const CFStringRef kCGPDFContextOwnerPassword;

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

关于ios - 可以在Swift中为生成的PDF添加密码吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53014357/

10-09 12:55