2011-02-02 10 views
14

私のPDFをSQLite DBからNSData変数に取得します。今、このNSDataからCGPDFDocumentRefを作成する私のオプションは何ですか?NSDataのCGPDFDocumentRef

このCGPDFDocumentRefを作成するにはどうしたらいいですか?SQLiteにデータがありますか?

答えて

36

あなたはこの機能を使用してPDF文書を作成することができます。

CGDataProviderRef CGDataProviderCreateWithCFData (
    CFDataRef data 
); 

NSDataCFDataRefはそうフリーダイヤルブリッジされることを考慮してください。

CGPDFDocumentRef CGPDFDocumentCreateWithProvider (
    CGDataProviderRef provider 
); 

あなたはこの機能を使用することができ、プロバイダを作成するにはそれらを同じ意味で使用することができます。

だから、これを試してみてください要約:

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

CFReleaseすべての未使用のデータに忘れないでください。

+1

作成したiosのファイルに、そのPDFをどのように書き込むことができるか分かりますか。 NSDataオブジェクトからwriteToFileを試しましたが、PDFのコンテンツが表示されません。データはCGPathから作成されます。 –

+1

UIGraphicsBeginPDFContextToFile(...)はPDFファイルを作成し、次にCGPathを使用してグラフィックスを書き出してUIGraphicsBeginPDFPage()を使用してページを作成し、最後にUIGraphicsEndPDFContext()でファイルを閉じます。結果は保存されたPDFになります。 – viggio24

+0

NSDataをpdfに変換するのは大変ですが、実際にはNSDataをwebViewに表示したいのですが、いつもこのエラーが表示されます。「PDFヘッダが見つかりませんでした: '%PDF'が見つかりません。 –