#ios #ipad #pdf #printing #document
#iOS #iPad #PDF #печать #документ
Вопрос:
Мне нужно изменить приложение для печати и отправки документа, созданного на iPad.
Я думаю, что мне следует создать документ в формате PDF, как показано в ссылке на учебник ниже:
http://www.raywenderlich.com/6818/how-to-create-a-pdf-with-quartz-2d-in-ios-5-tutorial-part-2
Однако после создания я хочу распечатать и / или отправить документ по электронной почте? Есть ли какие-либо другие предложения, для которых может не потребоваться документ pdf?
Мне нужно создать документ на основе данных, введенных в UIView, а затем либо распечатать и / или отправить его по электронной почте соответственно.
Любые предложения или помощь в этом были бы замечательными.
Ответ №1:
Возможно, вы захотите использовать UIDocumentInteractionController
для этой цели. После того, как вы создали свой PDF-файл, вы можете представить его UIDocumentInteractionController
, передав URL-адрес созданного / сохраненного PDF-файла. Это автоматически дает вам возможность печати / копирования и отправки по электронной почте.
Пример: (Предполагается, что вы сохранили свой PDF-файл в локальной папке Documents)
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *writableDBPath= [documentsDirectory stringByAppendingPathComponent:@"SAVED_PDF_NAME HERE"];
NSURL *URL = [NSURL fileURLWithPath:writableDBPath];
if (URL) {
// Initialize Document Interaction Controller
documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:URL];
documentInteractionController.UTI = @"com.adobe.pdf";
// Configure Document Interaction Controller
[documentInteractionController setDelegate:self];
[documentInteractionController presentPreviewAnimated:YES]; // This will present the PDF along with options like Mail, Print and Copy..
ПРИМЕЧАНИЕ: Это после создания вашего PDF.
Комментарии:
1. Спасибо за ответ, я изучу это и обновлю это после завершения. Приветствия.
2. Спасибо за решение, однако для того, чтобы оно работало, мне нужно было добавить в метод делегирования — (UIViewController *) documentInteractionControllerViewControllerForPrevie …{ return [self NavigationController];} но он работает хорошо и делает именно то, что мне нужно.
3. Это верно. Извините, я пропустил это .. Я думаю, XCode подсказал бы вам об этом .. : D Рад, что это помогло вам. 🙂
Ответ №2:
Проверьте следующие ссылки
http://developer.apple.com/library/ios/documentation/2ddrawing/conceptual/drawingprintingios/drawingprintingios.pdf или http://developer.apple.com/library/ios/documentation/2ddrawing/conceptual/drawingprintingios/Printing/Printing.html#//apple_ref/doc/uid/TP40010156-CH12-SW14
Комментарии:
1. Однако, спасибо, приятель, я уже видел эти ссылки на веб-сайте apple.