В приложении я создаю, я загрузить длинную страницу HTML в WebView, а затем распечатать его в формате PDF, используя следующие:какао 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 версии 10.0 и выше. Объявлено в NSPrintInfo.h.
Это не повлияло на печатный PDF.
Отличный ответ! Если никто другой не найдет лучшего ответа на следующий день, я вручу вам награду. Спасибо за вашу помощь. – Daniel
Ну, я не собираюсь бодрствовать в конце щедрости, поэтому ты выигрываешь! – Daniel
Это помогло мне. Хороший ответ. –