2016-09-23 25 views
0

以上は、任意のログなしでクラッシュしつつある保存私は、URLからpdfファイルを保存していると私は、単一のページを保存した場合、その後は問題ないが、私は、全体のPDFアプリを保存するときに1つのPDFページ

私のコード

CGPDFDocumentRef document = CGPDFDocumentCreateWithURL((CFURLRef)url); 
NSString *pass = [_JSON objectForKey:@"pass"]; 
CGPDFDocumentUnlockWithPassword(document, [pass UTF8String]); 

int i = (int) CGPDFDocumentGetNumberOfPages(document); 
NSLog(@"Number Of pages: %d",i); 


//Create the pdf context 
for (int j = 0; j<i; j++) { 
    page = CGPDFDocumentGetPage(document, j+1); //Pages are numbered starting at 1 
    pageRect = CGPDFPageGetBoxRect(page, kCGPDFMediaBox); 
    mutableData = CFDataCreateMutable(NULL, j); 
} 

//NSLog(@"w:%2.2f, h:%2.2f",pageRect.size.width, pageRect.size.height); 
CGDataConsumerRef dataConsumer = CGDataConsumerCreateWithCFData(mutableData); 
CGContextRef pdfContext = CGPDFContextCreate(dataConsumer, &pageRect, NULL); 

if (CGPDFDocumentGetNumberOfPages(document) > 0) 
{ 
    //Draw the page onto the new context 
    //page = CGPDFDocumentGetPage(document, 1); //Pages are numbered starting at 1 

    CGPDFContextBeginPage(pdfContext, NULL); 
    CGContextDrawPDFPage(pdfContext, page); 
    CGPDFContextEndPage(pdfContext); 
} 
else 
{ 
    NSLog(@"Failed to create the document"); 
} 

CGContextRelease(pdfContext); //Release before writing data to disk. 

//Write to disk 
[(__bridge NSData *)mutableData writeToFile:@"/Users/user/Desktop/sample.pdf" atomically:YES]; 

//CleanUP 
CGDataConsumerRelease(dataConsumer); 
CGPDFDocumentRelease(document); 
CFRelease(mutableData); 

私はこの問題がループにあると思いますが、このモジュールについてはあまりよく分かりません。初めてこれを試しています。 Here is the output log which i could never understand and there is no log in console

答えて

0

iは ここにある私のコードをいじることで答えを自分自身を発見した私の新しい作業コーディング

CGPDFDocumentRef document = CGPDFDocumentCreateWithURL((CFURLRef)url); 
NSString *pass = [_JSON objectForKey:@"pass"]; 
CGPDFDocumentUnlockWithPassword(document, [pass UTF8String]); 

int i = (int) CGPDFDocumentGetNumberOfPages(document); 
NSLog(@"Number Of pages: %d",i); 

//Create the pdf context 
CGPDFPageRef page = CGPDFDocumentGetPage(document, 1); //Pages are numbered starting at 1 
CGRect pageRect = CGPDFPageGetBoxRect(page, kCGPDFMediaBox); 
CFMutableDataRef mutableData = CFDataCreateMutable(NULL, 0); 


CGDataConsumerRef dataConsumer = CGDataConsumerCreateWithCFData(mutableData); 
CGContextRef pdfContext = CGPDFContextCreate(dataConsumer, &pageRect, NULL); 

if (CGPDFDocumentGetNumberOfPages(document) > 0) 
{ 
    //Draw the page onto the new context 
    //page = CGPDFDocumentGetPage(document, 1); //Pages are numbered starting at 1 

    for (int j = 0; j < i; j++) { 
    page = CGPDFDocumentGetPage(document, j+1); 
    CGPDFContextBeginPage(pdfContext, NULL); 
    CGContextDrawPDFPage(pdfContext, page); 
    CGPDFContextEndPage(pdfContext); 
    } 
} 
else 
{ 
    NSLog(@"Failed to create the document"); 
} 
CGContextRelease(pdfContext); //Release before writing data to disk. 

//Write to disk 

NSArray *arr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
path = arr[0]; 
path = [path stringByAppendingPathComponent:@"sample.pdf"]; 

[(__bridge NSData *)mutableData writeToFile:path atomically:YES]; 


//CleanUP 
CGDataConsumerRelease(dataConsumer); 
CGPDFDocumentRelease(document); 
CFRelease(mutableData); 

私はちょうど私がやっていた部分のみをループする必要があるとして、全体をループしましたページ作成部。

関連する問題