菜鸟教程小白 发表于 2022-12-11 20:40:52

iphone - 从 NSMutableData 动态创建 PDF


                                            <p><p>我有一个包含 PDF 文件的 NSMutableData 对象。我知道如何打开存储在系统中的 PDF,我可以这样做:</p>

<pre><code>CFURLRef pdfURL = CFBundleCopyResourceURL(CFBundleGetMainBundle(), (CFStringRef)pathToPDF, NULL, NULL);
CGPDFDocumentRef pdf = CGPDFDocumentCreateWithURL((CFURLRef)pdfURL);
</code></pre>

<p>但现在我不想将文件存储在系统上,而是动态创建 PDF 对象(因为 PDF 作为加密 PDF 存储在系统上,我不想保存解密后的出于安全原因的文件。)</p>

<p>因此,我不想从文件中加载 CGPDFDocumentRef pdf,而是直接从 NSMutableData 对象中加载它。</p>

<p>我该怎么做?</p>

<p>提前致谢!</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>使用 <code>CGDataProvider</code> 从任意来源获取字节:</p>

<pre><code>NSData *encrypted = ;
if (encrypted) {
    NSData *decrypted = MyDecrypt(encrypted);
    if (decrypted) {
      CGDataProviderRef dataProvider = CGDataProviderCreateWithCFData((CFDataRef)decrypted);
      if (dataProvider) {
            CGPDFDocumentRef pdf = CGPDFDocumentCreateWithProvider(dataProvider);
            CGDataProviderRelease(dataProvider);
      }
    }
}
</code></pre>

<p>您还可以创建一个 <code>CGDataProvider</code> 实例,如果这更适合您的流程,则可以使用回调进行动态解密。有关详细信息,请参阅文档。</p></p>
                                   
                                                <p style="font-size: 20px;">关于iphone - 从 NSMutableData 动态创建 PDF,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/8416387/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/8416387/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iphone - 从 NSMutableData 动态创建 PDF