3
Je suis en train de dessiner une page pdf sur un contexte pdf puis enregistrez-le sur le disque. Je n'arrive pas à comprendre ce qui ne va pas. Quelqu'un peut-il me donner quelques conseils. Merci.Enregistrement d'un document PDF sur le disque en utilisant Quartz
- (void)testQuartz:(NSData *)pdfDocumentData
{
//Create the pdf document reference
CGDataProviderRef dataProvider = CGDataProviderCreateWithCFData((CFDataRef)pdfDocumentData);
CGPDFDocumentRef document = CGPDFDocumentCreateWithProvider(dataProvider);
CGDataProviderRelease(dataProvider); //Release the data provider
//Create the pdf context
CGPDFPageRef page = CGPDFDocumentGetPage(document, 0);
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, 0);
CGContextDrawPDFPage(pdfContext, page);
}
else
{
NSLog(@"Failed to create the document");
}
//Write to disk
[(NSMutableData *)mutableData writeToFile:@"/Users/David/Desktop/test.pdf" atomically:YES];
//Clean up
CGDataConsumerRelease(dataConsumer);
CFRelease(mutableData);
CGPDFDocumentRelease(document);
}
Alors qu'est-ce qui ne fonctionne pas? Est-ce que ça ne compile pas? Recevez-vous des erreurs ou des avertissements lors de la construction? Votre message de journal est-il en sortie? – Abizern
Je n'obtiens aucun avertissement ou erreur lorsque le code est exécuté. Je sais que quelque chose ne va pas parce que le fichier pdf ne s'ouvrira pas. – David