Ошибки при создании PDF-файла в приложении MAC OS X - PullRequest
1 голос
/ 10 марта 2012

Я впервые пытаюсь поиграть в PDF Creation. Я использую это в моем приложении MAC OS X. Я хотел бы дать своим пользователям возможность экспортировать данные в файл PDF. Я гуглил, чтобы найти решение, и придумал следующий код.

Я получаю следующие сообщения об ошибках.

Undefined symbols for architecture x86_64:
  "_CopySaveLocation", referenced from:
      -[AppDelegate CreatePDFFile:] in AppDelegate.o
  "_DrawImageToExport", referenced from:
      -[AppDelegate CreatePDFFile:] in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

У кого-нибудь есть простой рабочий пример создания PDF в MAC OS X? Вы также можете сообщить мне, как инициализировать CFURLRef для сохранения в документах на MAC? Спасибо

Функция My Create PDF:

- (void) CreatePDFFile:(CFURLRef) url
{

    // Ask the user where we should save the file.
    CFURLRef saveLocation = CopySaveLocation();
    if(NULL != saveLocation) {

        CGRect mediaBox = CGRectMake(0, 0, 576.0, 576.0);            // Create a dictionary to store our document attributes
        CFMutableDictionaryRef attributes =
        CFDictionaryCreateMutable(
                                  NULL, 3,
                                  &kCFTypeDictionaryKeyCallBacks,
                                  &kCFTypeDictionaryValueCallBacks);
        CFDictionaryAddValue(attributes, kCGPDFContextAuthor,
                             CFSTR("Scott Thompson"));
        CFDictionaryAddValue(attributes, kCGPDFContextTitle,
                             CFSTR("Sample PDF"));
        CFDictionaryAddValue(attributes, kCGPDFContextCreator,
                             CFSTR("CreatePDF Sample Code"));
        // Create a PDF Context that we will draw the graphics into
        CGContextRef pdfContext =
        CGPDFContextCreateWithURL(url,
                                  &mediaBox, attributes);
        CFRelease(attributes);
        // Begin a PDF page
        CGContextBeginPage(pdfContext, &mediaBox);


    DrawImageToExport(pdfContext, mediaBox.size);

        // End the PDF page
        CGPDFContextEndPage(pdfContext);
        // Finalize the PDF document
        CGContextRelease(pdfContext);
    }
}
...