CGPDFDocumentRef от NSData - PullRequest
       24

CGPDFDocumentRef от NSData

14 голосов
/ 02 февраля 2011

Я получаю свой PDF из БД SQLite в переменную NSData. Теперь, каковы мои варианты создания CGPDFDocumentRef из этого NSData?

Или какие у меня есть варианты для создания этого CGPDFDocumentRef, иметь данные в SQLite?

1 Ответ

37 голосов
/ 02 февраля 2011

Вы можете создать 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 все неиспользуемые данные.

...