Как конвертировать UIView в PDF в iOS?

Существует множество ресурсов о том, как отображать PDF-файл в приложении UIView . Сейчас я работаю над созданием PDF-файла из UIViews .

Например, у меня есть UIView с такими подпредставлениями, как Textviews, UILabels , UIImages , так как я могу преобразовать big ] UIView в целом, включая все его подвиды и подвиды PDF?

Я проверил справочник Apple iOS . Однако, он говорит только о записи фрагментов текста / изображения в файл PDF.

Проблема, с которой я столкнулся, заключается в том, что содержимого, которое я хочу записать в файл как PDF, очень много. Если я напишу их в PDF по частям, это будет огромной работой. Вот почему я ищу способ записать UIViews в PDF-файлы или даже растровые изображения.

Я пробовал исходный код, который я скопировал из других вопросов / ответов в Stack Overflow. Но он дает мне только пустой PDF-файл с размером границ UIView .

-(void)createPDFfromUIView:(UIView*)aView saveToDocumentsWithFileName:(NSString*)aFilename
{
    // Creates a mutable data object for updating with binary data, like a byte array
    NSMutableData *pdfData = [NSMutableData data];

    // Points the pdf converter to the mutable data object and to the UIView to be converted
    UIGraphicsBeginPDFContextToData(pdfData, aView.bounds, nil);
    UIGraphicsBeginPDFPage();

    // draws rect to the view and thus this is captured by UIGraphicsBeginPDFContextToData
    [aView drawRect:aView.bounds];

    // remove PDF rendering context
    UIGraphicsEndPDFContext();

    // Retrieves the document directories from the iOS device
    NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);

    NSString* documentDirectory = [documentDirectories objectAtIndex:0];
    NSString* documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:aFilename];

    // instructs the mutable data object to write its context to a file on disk
    [pdfData writeToFile:documentDirectoryFilename atomically:YES];
    NSLog(@"documentDirectoryFileName: %@",documentDirectoryFilename);
}

Пожалуйста, помогите. Спасибо.

85
задан Venk 1 June 2013 в 12:05
поделиться