我正在打印一个视图,我自定义该视图以从imageView打印一些文本和图像。
以下代码有效,但不会出现图像,而是显示空白框。
-(NSString *)prepareHTMLText {
NSMutableString *body = [NSMutableString stringWithString:@"<!DOCTYPE html><html><body>"];
[body appendString:@"<h2>Ingredients</h2>"];
[body appendFormat:@"<p>%@ %@</p>", @"text", @"TEStText"];
[body appendFormat:@"<img src=\"%@\"/>", myImageView.image];
[body appendString:@"</body></html>"];
return body;
}
答案 0 :(得分:0)
你不能直接将这样的图像分配给你的身体。你需要做下面的
myImageView.image
转换为NSData
NSData
的内容存储在文档目录中。多数民众赞成。
答案 1 :(得分:0)
[body appendFormat:@"<img src=\"%@\"/>", myImageView.image];
您想要附加此图像的路径,但在这里您只是附加了图像的描述。 (默认情况下,它包含图像类和大小等内容。)。似乎输出字符串将被发送到webview(或浏览器?)。 webview无法识别和查找图像。您需要为webview指定正确的路径才能找到图像。
答案 2 :(得分:0)
希望您拥有捆绑中的图像,因此请获取图像的文件路径并使用该路径而不是myImageView.image。希望这会对你有所帮助。
答案 3 :(得分:0)
download Base64.h and .m files from here将它们拖到你的.h文件中的import.import Base64.h中,然后尝试下面的代码吧
-(NSString *)prepareHTMLText {
NSString *str1 = [Base64 encode:UIImagePNGRepresentation(myImageView.image)];
NSMutableString *body = [NSMutableString stringWithString:@"<!DOCTYPE html><html><body>"];
[body appendString:@"<h2>Ingredients</h2>"];
[body appendFormat:@"<p>%@ %@</p>", @"text", @"TEStText"];
[body appendFormat:@"<img src=\"data:image/png;base64,%@\" alt=\"\" height=\"100\" width=\"100\"/>",str1];
[body appendString:@"</body></html>"];
return body;
}
试试这个