У меня есть старый код, где я создаю PDF-файлы из .xib. Когда я отправляю по электронной почте файл PDF, сгенерированный из xib, я могу получить предварительный просмотр PDF-файла в почтовом окне.Предварительный просмотр PDF в Mailer
С помощью этого кода ниже я могу сгенерировать один файл PDF из группы PDF-файлов, и я могу отправить его по электронной почте, но не покажут предварительный просмотр страницы PDF, чего я пытаюсь достичь.
В документации по этому вопросу ничего не найдено. Есть ли способ отобразить предварительный просмотр PDF, который я отправляю?
Я не хочу просматривать PDF-файл в веб-представлении, предварительный просмотр должен быть в контроллере просмотра почты после его представления. Я могу просмотреть в контроллере просмотра почты файлы PDF, но эти функции (по какой-то причине) перестали работать с блоком кода, который я написал.
//wrap all PDF files together into one PDF file
//*************************************************************
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *oldFilePath=[documentsDirectory stringByAppendingPathComponent:@"myPDF.pdf"];
NSURL *oldFileUrl = [NSURL fileURLWithPath:oldFilePath];
CGContextRef context = CGPDFContextCreateWithURL((__bridge_retained CFURLRef)oldFileUrl, NULL, NULL);
for (OBJreport in pages)
{
// Get the first page from each source document
NSString *pdfPath = OBJreport.rep_filePath;
NSURL *pdfUrl = [NSURL fileURLWithPath:pdfPath];
CGPDFDocumentRef pdfDoc = CGPDFDocumentCreateWithURL((__bridge_retained CFURLRef)pdfUrl);
CGPDFPageRef pdfPage = CGPDFDocumentGetPage(pdfDoc, 1);
CGRect pdfCropBoxRect = CGPDFPageGetBoxRect(pdfPage, kCGPDFMediaBox);
// Copy the page to the new document
CGContextBeginPage(context, &pdfCropBoxRect);
CGContextDrawPDFPage(context, pdfPage);
// Close the source files
CGContextEndPage(context);
CGPDFDocumentRelease(pdfDoc);
}
// Cleanup
//*************************************************************
CGContextRelease(context);
//add the final output file to the pages array for cleanup
//*************************************************************
OBJ_report *cleanUpOBJreport = [OBJ_report new];
cleanUpOBJreport.rep_filePath = [oldFileUrl path];
cleanUpOBJreport.rep_mimiType = @"application/pdf";
cleanUpOBJreport.rep_data = [NSData dataWithContentsOfURL:oldFileUrl];
cleanUpOBJreport.rep_fileName = @"myPDF.pdf";
[pages addObject:cleanUpOBJreport];
//mail
//*************************************************************
MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init];
[mailer setMailComposeDelegate:self];
[mailer setSubject:@"File Attached"];
[mailer setMessageBody:defaultEmailCoverLetter isHTML:NO];
//add all pages
[mailer addAttachmentData:cleanUpOBJreport.rep_data mimeType:@"application/pdf" fileName:@"myPDF.pdf"];
[self presentViewController:mailer animated:YES completion:nil];
//cleanup files
//*************************************************************
OBJ_report *clean_OBJreport = [OBJ_report new];
for (clean_OBJreport in pages)
{
NSError *error = nil;
[[NSFileManager defaultManager] removeItemAtPath:clean_OBJreport.rep_filePath error:&error];
}
Я не хочу просматривать PDF-файл в веб-представлении, предварительный просмотр должен быть в контроллере просмотра почты после его представления. Я могу просмотреть в контроллере просмотра почты файлы PDF, но эти функции (по какой-то причине) перестали работать с блоком кода, который я написал. – user2228755
Я не уверен, что вы понимаете под своим контроллером. Если это настраиваемый контроллер представлений, полученный из 'UIViewConttroller', вы всегда можете добавить' UIWebView' к своему представлению и позволить ему работать как просмотрщик. И если у вас уже есть индивидуальный, но нефункциональный просмотрщик, почему бы вам не поделиться своим кодом, чтобы мы могли решить, почему он не работает? –
Я имею в виду представление по умолчанию, которое отображается при вызове [self presentViewController: mailer animated: YES complete: nil]; спасибо за помощь. – user2228755