14

我将我的 PDF 从 SQLite DB 获取到 NSData 变量中。现在我有什么选择从这个 NSData 创建 CGPDFDocumentRef ?

或者我有什么选择来创建这个 CGPDFDocumentRef,在 SQLite 中有数据?

4

1 回答 1

37

您可以使用此功能创建 PDF 文档:

CGPDFDocumentRef CGPDFDocumentCreateWithProvider (
   CGDataProviderRef provider
);

要创建提供程序,您可以使用此功能:

CGDataProviderRef CGDataProviderCreateWithCFData (
   CFDataRef data
);

并考虑到这一点,NSData并且CFDataRef是免费桥接的,因此您可以互换使用它们。

所以总结试试这个:

NSData *data = ... my data from SQLite ...
CFDataRef myPDFData = (CFDataRef)data;
CGDataProviderRef provider = CGDataProviderCreateWithCFData(myPDFData);
CGPDFDocumentRef pdf = CGPDFDocumentCreateWithProvider(provider);

不要忘记CFRelease所有未使用的数据。

于 2011-02-02T14:49:40.503 回答