2016-05-10 7 views
1

Ich konvertierte keine CGPDFPageRef in NSData. Ich möchte PDF in Seiten schneiden. Und möchte es in einem Webview anzeigen. Hier ist mein Code:Wie konvertiert man CGPDFPageRef in NSData xcode 7

CGPDFPageRef page=CGPDFDocumentGetPage(pdf,1); 

    CGRect mediaBox = CGPDFPageGetBoxRect(page, kCGPDFMediaBox); 
    // output 
    CGDataConsumerRef consumer = CGDataConsumerCreateWithCFData(*outputData); 
    CGContextRef context = CGPDFContextCreate(consumer, &mediaBox, NULL); 
    // draw 
    CGContextBeginPage(context, &mediaBox); 
    CGContextDrawPDFPage(context, page); 
    CGContextEndPage(context); 

    // This line gives me an error: 

    NSData *passDat = (__bridge_transfer NSData *)outputData; 
+0

Ich möchte CGPDFPageRef in eine UIWebView.So laden, um eine PDF-Seite zu laden e bei webview brauche ich NSData. Deshalb meine Frage wie kann ich CFData in NSData bei Xcode 7 arc konvertieren? –

+0

es gibt ERROR: Inkompatibel Typ CFDataRef * (aka * const struct __CFData **) zu NSData –

Antwort

0

Um cfdata zu NSData konvertieren, können Sie dies tun:

NSData *passDat = (__bridge NSData *)outputData; 

Stellen Sie sicher, dass die outputData ohne * definieren.

CFDataRef outputData; 

cfdata ist „gebührenfreie überbrückte“ mit seinem Gegenstück Cocoa Foundation, NSData. Dies bedeutet, dass der Core Foundation-Typ in Funktions- oder Methodenaufrufen mit dem überbrückten Foundation-Objekt austauschbar ist.

CFDataRef


eine ganze PDF Laden

Wenn Ihre Absicht, die gesamte PDF in eine UIWebView zu laden ist und es nur dort zu sehen, können Sie folgendes tun:

// create an url to the PDF  
let url = NSURL(string: "file://some/path/my.pdf") 

// you can optionally append #page[pageNumber] to the url string to make the UIWebView display a desired page; 
// NSURL(string: "file://some/path/my.pdf#page45") 

// create a request with the provided url 
let urlRequest = NSURLRequest(URL: url) 

// load the PDF file into the UIWebView 
webView.loadRequest(urlRequest) 
+0

Ich möchte CGPDFPageRef in eine UIWebView.So laden, zum Laden einer PDF-Seite bei Webview brauche ich NSData.Das ist, warum meine Frage wie ich konvertiere CFData in NSData bei Xcode 7 arc –

+0

es gibt ERROR: Inkompatible Typ Casting CFDataRef * (aka * const struct __CFData **) zu NSData –

Verwandte Themen