Разделение страницы PDF какао

В приложении, которое я создаю, я загружаю длинную страницу HTML в webView, а затем распечатываю ее в PDF, используя следующее:

-(void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame
{
    if ([frame isEqual:[[self doc] mainFrame]]) 
    {
        NSMutableData *newData = [[NSMutableData alloc] init];
        NSPrintInfo *newInfo = [NSPrintInfo sharedPrintInfo];
        NSView *docView = [[[[self doc] mainFrame] frameView] documentView];

        NSPrintOperation *newPrintOp = [NSPrintOperation PDFOperationWithView:docView insideRect:docView.bounds toData:newData printInfo:newInfo];

        BOOL runPrint = [newPrintOp runOperation];  
        if (!runPrint)
        {
           NSLog(@"Print Failed");
        }
        PDFDocument *newDoc = [[PDFDocument alloc] initWithData:newData];
        [newData release];
        [self setPdf:newDoc];

        //Other code here
        }
    }

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

Кто-нибудь знает, как это сделать?

Я попытался вставить следующее после NSPrintInfo * newInfo = [NSPrintInfo sharedPrintInfo];

[newInfo setVerticalPagination:NSAutoPagination];
[newInfo setHorizontalPagination:NSAutoPagination];

NSAutoPagination описывается в документации следующим образом:

NSAutoPagination Изображение делится на прямоугольники одинакового размера и помещается в один столбец страниц. Доступно в Mac OS X v10.0 и новее. Заявлено в NSPrintInfo.h.

Это не повлияло на распечатанный PDF-файл.

7
задан Daniel 17 January 2012 в 19:18
поделиться