0

我正在打印我自定义的视图以打印来自 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;
}
4

4 回答 4

0

您不能直接将这样的图像分配给您的身体。您需要执行以下操作

  1. 转换myImageView.imageNSData
  2. NSData以唯一名称存储文档目录中的内容。
  3. 将存储在文档目录中的图像路径传递给正文。

就是这样。

于 2013-01-23T11:27:58.760 回答
0
[body appendFormat:@"<img src=\"%@\"/>", myImageView.image];

您想附加此图像的路径,但在这里您只是附加了图像的描述。(默认情况下,它包含图像类和大小等内容。)。似乎输出字符串将被发送到 webview(或浏览器?)。webview 无法识别和找到带有 . 您需要为 webview 指定正确的路径才能找到图像。

于 2013-01-23T11:28:53.670 回答
0

希望您在捆绑包中有图像,因此获取图像的文件路径并使用该路径而不是 myImageView.image。希望这会帮助你。

于 2013-01-23T11:32:17.077 回答
0

从这里下载 Base64.h 和 .m 文件, 将它们拖到你的项目中。在你的 .h 文件中导入 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;
}

试试这个

于 2013-01-23T11:40:40.263 回答