Создание 1-страничного PDF-файла для просмотра экрана iPad — как?

Я задавал этот вопрос на нескольких других форумах и не получил никакого ответа, поэтому я надеюсь, что кто-то здесь может помочь указать мне правильное направление. У меня есть довольно простое одноэкранное приложение для моей работы. По сути, это просто воссоздание бумажного отчета на 1 странице с логотипом компании, несколькими метками, несколькими текстовыми полями и текстовым полем прокрутки для отчета.

Мне нужно иметь возможность заполнить отчет, а затем нажать кнопку, чтобы сохранить его в графической форме, чтобы я мог отправить его по факсу, распечатать или отправить по электронной почте позже. В настоящее время я просто программно делаю снимок экрана и сохраняю его в библиотеке фотографий (по умолчанию для захвата экрана). Тогда я могу просто отправить его по электронной почте с фотографии. Это работает нормально, но в лучшем случае немного взломано.

Я прочитал новое руководство по созданию PDF-файлов для iPad 3.2 (по-видимому, оно должно быть намного проще, чем раньше), но я не могу заставить его работать, и я потратил на него бессчетное количество часов. Я надеюсь, что у кого-то есть ответ для меня.

В качестве альтернативы, если кто-нибудь знает, как я могу перенаправить, где хранится снимок экрана (по умолчанию в фотоальбоме), возможно, я смогу заставить эту функцию работать. Если бы я мог перенаправить снимок экрана, чтобы сохранить его в папке документов моего приложения, я мог бы использовать MFMailCompose, чтобы прикрепить его к электронному письму.

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

Заранее спасибо за помощь. -Рэй


person user314695    schedule 12.04.2010    source источник
comment
+1 это хороший вопрос, и мне было бы интересно узнать об этом больше.   -  person Tilo Mitra    schedule 15.04.2010


Ответы (1)


Я использую следующий фрагмент. он отлично работает с созданием одностраничных PDF-файлов. Он использует любой вид, в котором у вас есть контент, захватывает его в виде файла PDF и сохраняет в каталоге документов.

на какой-то функции

{
 ....
    // here container view is my content to be converted to PDF file
    // filepath is the path to where it should be write in our documents directory
    CGContextRef pdfContext = [self createPDFContext:containerView.bounds path:(CFStringRef)filePath];  
    NSLog(@"PDF Context created");
    CGContextBeginPage (pdfContext,nil); // 6

    //turn PDF upsidedown   
    CGAffineTransform transform = CGAffineTransformIdentity;    
    transform = CGAffineTransformMakeTranslation(0, containerView.bounds.size.height);  
    transform = CGAffineTransformScale(transform, 1.0, -1.0);   
    CGContextConcatCTM(pdfContext, transform);  

    //Draw view into PDF
    [containerView.layer renderInContext:pdfContext];   
    CGContextEndPage (pdfContext);// 8  
    CGContextRelease (pdfContext);

 ....
}

- (CGContextRef) createPDFContext:(CGRect)inMediaBox path:(CFStringRef) path    
{   
    CGContextRef myOutContext = NULL;   
    CFURLRef url;   
    url = CFURLCreateWithFileSystemPath (NULL, // 1                                      
                                         path,                                       
                                         kCFURLPOSIXPathStyle,                                       
                                         false);

    if (url != NULL) {      
        myOutContext = CGPDFContextCreateWithURL (url,// 2                                                
                                                  &inMediaBox,                                                
                                                  NULL);        
        CFRelease(url);// 3     
    }   
    return myOutContext;// 4    
}
person Nikesh K    schedule 20.03.2011