En la aplicación que estoy creando, me carga una larga página de HTML en un web View y luego imprimirlo en un archivo PDF utilizando la siguiente:cacao página PDF división
-(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
}
}
El problema es que cuando miro en newDoc
, es un gran PDF de una sola página. Lo que preferiría sería que la impresión actuara de la misma manera que en el diálogo "guardar como PDF ...", es decir, dividir el PDF en varias páginas de tamaño razonable.
¿Alguien sabe cómo lograr esto?
I intentó insertar el siguiente después NSPrintInfo *newInfo = [NSPrintInfo sharedPrintInfo];
[newInfo setVerticalPagination:NSAutoPagination];
[newInfo setHorizontalPagination:NSAutoPagination];
NSAutoPagination se describe en los documentos como el siguiente:
NSAutoPagination La imagen se divide en rectángulos de igual tamaño y se coloca en una columna de páginas. Disponible en Mac OS X v10.0 y posterior. declarado en NSPrintInfo.h.
Esto no tuvo ningún efecto en el PDF impreso.
¡Respuesta excelente! Si a nadie más se le ocurre una respuesta mejor al día siguiente, te otorgaré la recompensa. Gracias por tu ayuda. – Daniel
Bueno, no voy a estar despierto por el final de la recompensa, ¡así que ganas! – Daniel
Esto me ayudó. Buena respuesta. –