2012-03-21 7 views

ответ

0

Если вы попытаетесь сделать это косвенно, а кто-то попробовал, вы не сможете его просмотреть. https://discussions.apple.com/thread/2479252

Camera Roll предназначен для фотографий. iBooks предназначен для PDF-файлов.

0

Нет, это невозможно. Apple разрешает сохранять фотографии и видео в Фотобиблиотеке. Файлы в формате PDF могут быть сохранены в iBooks или других программах, которые могут обрабатывать PDF-файлы, но Библиотека фотографий не может принимать PDF-файлы.

0

Вы можете преобразовать PDF в набор изображений и импортировать их в рулон. Вы не можете добавить фактический PDF в рулон.

+0

так как я могу преобразовать PDF в изображения? –

1

Как @ jshin47 - следующий фрагмент получит вы собираетесь:

Это преобразует PDF-файл под названием test.pdf сидит в каталоге местных документов в формате PNG под названием test.png. Я использовал размеры A4 для PDF, но если вы не находитесь в Великобритании/Европе, вам могут потребоваться размеры букв в США.

NSString* localDocuments = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0]; 
NSString* pdfPath = [localDocuments stringByAppendingPathComponent:@"test.pdf"]; 

// create a sample PDF (just for illustration) 
UIGraphicsBeginPDFContextToFile(pdfPath, CGRectZero, nil); 
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, 612, 792), nil); 
[@"Test string" drawInRect:CGRectMake(50, 50, 300, 200) withFont: [UIFont systemFontOfSize: 48.0]]; 
UIGraphicsEndPDFContext(); 

NSURL* url = [NSURL fileURLWithPath: pdfPath]; 

CGPDFDocumentRef document = CGPDFDocumentCreateWithURL ((CFURLRef) url); 

UIGraphicsBeginImageContext(CGSizeMake(596,842)); 
CGContextRef currentContext = UIGraphicsGetCurrentContext(); 

CGContextTranslateCTM(currentContext, 0, 842); 
CGContextScaleCTM(currentContext, 1.0, -1.0); // make sure the page is the right way up 

CGPDFPageRef page = CGPDFDocumentGetPage (document, 1); // first page of PDF is page 1 (not zero) 
CGContextDrawPDFPage (currentContext, page); // draws the page in the graphics context 

UIImage* image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

NSString* imagePath = [localDocuments stringByAppendingPathComponent: @"test.png"]; 
[UIImagePNGRepresentation(image) writeToFile: imagePath atomically:YES]; 

UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil); // do error checking in production code 
+0

Спасибо! Кажется, что работает, но картина только белая ..? – user1110365

+0

Скорее всего, он не может найти допустимый PDF-файл под названием test.pdf в папке с документами. Если url равен nil - что будет, если он не сможет найти файл, скажем - тогда он просто сгенерирует пустой PNG. Я добавил четыре строки, чтобы создать PDF-файл и сохранить его в папке с документами. Если это создает изображение в порядке, то проблема, скорее всего, не является URL-адресом для действительного файла PDF. – Obliquely

+0

Один вопрос: он отлично работает :), но как его использовать pdf из UIWebview (UIwebview.request.URL.absoluteString), а не из папки документа? – Nils

Смежные вопросы