0

画像をダウンロードして印刷する 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];

}

ありがとう!

4

1 に答える 1