Приложение для iPad: объединение PDF-файлов в 1 PDF-документ / создание PDF-документа из многостраничного прокрутки - PullRequest
1 голос
/ 17 мая 2011

Я пишу приложение для iPad, в котором используется прокрутка с управлением страницей.Мне нужно создать PDF всех страниц в виде 1 PDF-файла.До сих пор я полагал, что мне нужно пройтись по всем под-представлениям (страницам) и создать файлы PDF для каждого (используя CGPDFContext).НО мне нужно объединить все файлы в 1 PDF документ.Можете ли вы помочь мне сделать это ??

ИЛИ, если у вас есть лучший способ создать документ PDF с несколькими страницами из этого прокрутки, это было бы даже лучше !!

Пожалуйста, помогите.Я искал везде и видел, что в Mac OS есть что-то с помощью PDFDocument, функция insertPage.Я не могу найти аналогичный метод для iOS ??

1 Ответ

2 голосов
/ 17 мая 2011

для создания PDF-файла из нескольких частей:

-(CGContextRef) createPDFContext:(CGRect)inMediaBox path:(NSString *) path
{
    CGContextRef myOutContext = NULL;
    NSURL * url;

    url = [NSURL fileURLWithPath:path];
    if (url != NULL) {
        myOutContext = CGPDFContextCreateWithURL (url,// 2
                                                  &inMediaBox,
                                                  NULL);
    }
    return myOutContext;// 4
}

-(void)createPdfFromScrollview:(UIScrollView *)scrollview
{

    CGContextRef pdfContext = [self createPDFContext:CGRectMake(0, 0, WIDTH, HEIGHT) path:outputFilePath];

    for(UIView * view in scrollview.subviews)
    {
        CGContextBeginPage (pdfContext,nil);
        CGAffineTransform transform = CGAffineTransformIdentity;
        transform = CGAffineTransformMakeTranslation(0, HEIGHT);
        transform = CGAffineTransformScale(transform, 1.0, -1.0);
        CGContextConcatCTM(pdfContext, transform);            
        //Draw view into PDF
        [view.layer renderInContext:pdfContext];

        CGContextEndPage (pdfContext);         
    }

    CGContextRelease (pdfContext);
}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...