Этот вопрос следует из предыдущего вопроса:
Проблемы с созданием Webview для печати
Я использую Webview для печати графиков, созданных с использованием платформы Core Plot. Следующий код используется для заполнения Webview:
NSData *imageData = [[barChart imageOfLayer] TIFFRepresentation];
NSString *temporaryImagePath = NSTemporaryDirectory();
NSError *error = nil;
NSBitmapImageRep* imageRep = [NSBitmapImageRep imageRepWithData:imageData];
NSData* pngData;
pngData = [imageRep representationUsingType:NSJPEGFileType
properties:nil];
temporaryImagePath = [temporaryImagePath stringByAppendingPathComponent:@"jpegData.jpg" ];
[pngData writeToFile:temporaryImagePath
options:NSDataWritingAtomic
error:&error ];
WebView *printView;
printView =[[WebView alloc] initWithFrame:NSMakeRect(0, 0, 300, 1000)
frameName:@"printFrame"
groupName:@"printGroup"];
NSString *theCSSString = [self theFileCodeForString:@"OutputFormat"
withExtension:@"CSS"
withContents:@"<style type=\"text/css\">#results {font-family:\"Trebuchet MS\", Arial, Helvetica, sans-serif;width:100%;border-collapse:collapse;} #results td, #results th {font-size:1em;border:1px solid #98bf21;padding:3px 7px 2px 7px;} #results th {font-size:1.1em;text-align:left;padding-top:5px;padding-bottom:4px;background-color:#A7C942;color:#ffffff;} #results tr.alt td {color:#000000;background-color:#EAF2D3;} </style>"];
NSMutableString *theURLString = [[NSMutableString alloc] initWithString:@"<html>"];
[theURLString appendString:@"<head>"];
[theURLString appendString:theCSSString];
[theURLString appendString:@"</head>"];
[theURLString appendString:@"<body>"];
NSURL *tempImageURL = [NSURL fileURLWithPath:temporaryImagePath];
[theURLString appendFormat:@"<img src=\"%@\"/>", [tempImageURL absoluteString]];
[theURLString appendString:@"</body></html>"];
[[printView mainFrame] loadHTMLString:theURLString
baseURL:[NSURL URLWithString:@"xxxx"]];
[[[[printView mainFrame] frameView] documentView] print:sender];
[printView release];
Моя проблема в том, что изображение не отображается ни в печатной версии веб-просмотра, ни в том случае, если я создаю окно с веб-представлением, изображение не отображается. Если я возьму необработанный HTML-код, сгенерированный кодом, вставьте его в Coda, а затем просмотрите его, и изображение появится без проблем. Может ли кто-нибудь указать мне в правильном направлении, как это исправить. Вероятно, это довольно простая ошибка, так как я довольно плохо знаком с работой с изображениями и веб-представлениями.
Редактировать
Похоже, проблема связана с форматом ссылки на изображение, потому что, когда я заменяю сгенерированный файл: /// ... ссылка на ссылку html: // ... с изображением в сети все Кажется, работает нормально. Это не объясняет, почему это работает в Coda, но не в Webview.