Проблемы создания Webview для печати - PullRequest
0 голосов
/ 30 апреля 2011

Я пытаюсь использовать веб-представление для добавления текста вокруг графика, созданного с использованием платформы Core Plot для печати. У меня есть следующий код, который по большей части, кажется, работает, однако он не отображает изображение, а изображение с вопросительным знаком для отсутствующего изображения. Кто-нибудь может указать мне правильное направление для того, в чем может быть проблема:

NSData        *imageData = [[barChart imageOfLayer] TIFFRepresentation];
NSString      *temporaryImagePath = NSTemporaryDirectory();
NSError       *error = nil;

NSBitmapImageRep*   imageRep    = [NSBitmapImageRep imageRepWithData:imageData];
NSData*             pngData;

pngData = [imageRep representationUsingType:NSPNGFileType 
                                 properties:nil];

temporaryImagePath = [temporaryImagePath stringByAppendingPathComponent:@"pngData.png" ];
[pngData writeToFile:temporaryImagePath 
               options:NSDataWritingAtomic 
                 error:&error ];

WebView *printView;

printView =[[WebView alloc] initWithFrame:NSMakeRect(0, 0, 300, 500)
                                frameName:@"printFrame" 
                                groupName:@"printGroup"];


NSMutableString *theURLString = [[NSMutableString alloc] initWithString:@"<html>"];
[theURLString appendString:@"<head>"];
[theURLString appendString:@"</head>"];

[theURLString appendString:@"<body>"];
[theURLString appendString:[NSString stringWithFormat:@"<img src=\"%@\" alt=\"Histogram\"/>", temporaryImagePath]];
[theURLString appendString:@"</body></html>"];

[[printView mainFrame] loadHTMLString:theURLString
                  baseURL:[NSURL URLWithString:@"a URL"]];
[[[[printView mainFrame] frameView] documentView] print:sender];
[printView release];

1 Ответ

2 голосов
/ 30 апреля 2011

В качестве источника изображения вы используете обычный путь, который не является допустимым HTML. Вы должны использовать файл: // URL, например:

//...
NSURL *tempImageURL = [NSURL fileURLWithPath:temporaryImagePath];
[theURLString appendFormat:@"<img src=\"%@\"/>", [tempImageURL absoluteString]];
//...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...