首页新闻找找看学习计划

WP8.1开发中 如何将RichEditBox 中的图片存入 .RTF文档?或者其他形式的持久化?

0
悬赏园豆:50 [已解决问题] 解决于 2014-12-03 00:02

WP8.1环境中 我通过 RichEditBox.Document.GetRange().InsertImage()方法 将图片插入到RichEditBox 中 然后通过 SaveToStream 写入到.rtf 文件中 ,但是我通过 LoadFromStream 加载这个 rtf 文档后,RichEditBox 显示为空白 ,如果不插入图片 ,可以把纯文本写入 rtf 并且可以正常加载  。请问插入图片后应该如何保存 和 加载呢 ?谢谢

多夢的歲月的主页 多夢的歲月 | 初学一级 | 园豆:179
提问于:2014-12-02 15:53
< >
分享
最佳答案
0

请将图片二进制流用base64加密后再插入,以下是伪代码:

$image = "image.jpg";
$data  = file_get_contents($image); //base64 encode
$size = filesize($image);
.....
print "{\\*\\shppict{\\pict\\jpegblip\\bin$size $data}}";

收获园豆:50
XiaoFaye | 老鸟四级 |园豆:3082 | 2014-12-02 16:57

谢谢你的答复 ,可是RichEditBox.Document.GetRange().InsertImage() 这个方法的参数是

void InsertImage(
  int width,
  int height,
  int ascent,
  VerticalCharacterAlignment verticalAlign,
  string alternateText,
  IRandomAccessStream value
)  ,传入的参数是文件流 , 无法进行编码呀  ,而且此时 我插入的图片是可以正常显示在在RichEditBox中的,情况是在调用RichEditBox.Document.SaveToStream()方法保存后 ,再次加载这个文档时 RichEditBox中 既没有文字 也没有 图片 ,这个编码过程应该在哪个过程进行呢?

多夢的歲月 | 园豆:179 (初学一级) | 2014-12-02 17:26

@多夢的歲月: 

rtf文件本质上就是一个文本文件而已,不信你用记事本打开一个RTF文件试试 。

你保存后的RTF文件用其它软件打开可以看到图片吗?如果可以的话,可能是你加载文档的方式有问题。

XiaoFaye | 园豆:3082 (老鸟四级) | 2014-12-02 17:37

@XiaoFaye: 谢谢你的建议 ,为了获得保存的文档,我用真机测试  发现之前的方法是可行的,不能加载估计是模拟器的BUG . . . . . . .

多夢的歲月 | 园豆:179 (初学一级) | 2014-12-03 00:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册