Pregunta

Estoy tratando de imprimir un PDFDocument que estoy construyendo a partir de una serie de imágenes. En caso de que importa, estoy haciendo todo esto dentro de un plugin de Mozilla.

creo el PDFDocument, y lo puso en un PDFView, entonces yo llamo

[printView printWithInfo: [NSPrintInfo sharedPrintInfo] autoRotate: YES];

El viene de diálogo de impresión hacia arriba (como una ventana independiente, en lugar de panel. Asumo que eso viene de estar dentro de una ventana de Mozilla, así que no estaba muy preocupado por eso. El cuadro de diálogo muestra mi documento, y puedo página a través correctamente, y todo se ve bien.

Sin embargo, cuando me golpeó "Imprimir" en el menú desplegable con el "Diseño", etc se vacía, y la vista bajo el que se vacía. La ventana no desaparece, y el documento no se imprime. Golpear Cancelar hace exactamente lo mismo. La única cosa que puedo hacer entonces es salir forzosamente Mozillla.

basé el programa fuera de PDFKitLinker2 desde el sitio dev manzana, y que programa funciona. Pero no puedo ver ninguna diferencia significativa entre ella y mi versión.

¿Alguna sugerencia sobre dónde buscar?

gracias.

EDIT: Sí, sé que esto es casi un duplicado exacto de impresión fuera de la pantalla , pero que nunca tuvo una respuesta suficiente ... (Y no me di cuenta hasta ahora ...)

¿Fue útil?

Solución

Parece que tienes un problema de gestión de memoria aquí. ¿Ha comprobado el registro de la consola para ver si hay ser arrojado una excepción? ¿Cómo estás creando su PDFView?

Pero por qué no hacerlo de la manera WebKit ¿verdad?

Específicamente, declarar una categoría en PDFDocument

@interface PDFDocument (PDFSecretsIKnowViaWebKit)
- (NSPrintOperation *)getPrintOperationForPrintInfo:(NSPrintInfo *)printInfo autoRotate:(BOOL)doRotate;
@end

A continuación, cuando se quiere imprimir su PDFDocument simplemente obtener un NSPrintOperation de ella y ejecutarlo.

NSPrintOperation *op = [myPDFDoc getPrintOperationForPrintInfo:info autoRotate:YES];
[op runOperation];
// [op runOperationModalForWindow:delegate:didRunSelector:contextInfo:] if you have a window to attach it to

Otros consejos

Esto funciona para mí también. He verificado que getPrintOperationForPrintInfo: Giro automático:. Existe y parece funcionar correctamente en 10.4, 10.5 y 10.6

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top