画像をダウンロードして印刷する Webkit プラグインを作成しています。正しいデータがダウンロードされ、NSImage の寸法が正しいことを確認しました。残念ながら、画像を含む NSImageView は、プリンターに送信されたドキュメントにも、コンテンツ ビューの唯一のサブビューであるため、ビューを含むウィンドウにも何も表示しません。これが私のコードです:
-(void)printImageAtURL:(NSString*)imageUrl{
NSURLResponse *response;
NSError *error = nil;
NSURL *url = [NSURL URLWithString:imageUrl];
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:20];
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
if(error)
return;
//Data is the correct length
NSImage *image = [[NSImage alloc] initWithData:data];
NSSize imageSize = [image size];
//imageSize is correct dimensions
NSRect viewRect = NSMakeRect(0, 0, imageSize.width, imageSize.height);
NSImageView *imageView = [[NSImageView alloc] initWithFrame:viewRect];
[imageView setImage:image];
[image release];
NSPrinter *printer = [NSPrinter printerWithName:[[NSPrinter printerNames] objectAtIndex:0]];
NSPrintInfo *printInfo = [[NSPrintInfo alloc] init];
[printInfo setPrinter:printer];
NSPrintOperation *printOp = [NSPrintOperation printOperationWithView:imageView printInfo:printInfo];
[printOp setShowsPrintPanel:NO];
[printOp runOperation];
//The print job is an empty page :(
//Pop-up a window just to test the image view
NSWindow * window = [[NSWindow alloc] init];
[window makeKeyAndOrderFront:self];
[window setFrame:viewRect display:YES];
[[window contentView] addSubview:imageView];
//The window is sized correctly but empty :(
[printInfo release];
[imageView release];
}
ありがとう!