我尝试使用objective-c代码来读取mac osx上的rtf(有图像)。 我注意到mac上的应用Textedit总是删除rtf文件的图像信息。 我在Windows上检查rtf的二进制代码。 rtf文件始终将图像更改为长文本字符串。
我不确定mac和win上的rtf定义是否有区别?
欢迎任何评论
答案 0 :(得分:0)
我可能错了,但我提醒Mac OS X Textedit在添加图像时使用RTFD格式,Windows保持RTF并直接将数据放入文本文件中。
RTFD是一种包格式(实际上是一个文件夹),并将图像分别存储为文件和文本。
答案 1 :(得分:0)
你是对的。
Windows使用并实现完整的RTF规范,允许将嵌入的图像写为十六进制代码或十六进制代码转换为二进制代码。
在Mac上,TextEdit会很好地读取RTF文件,但它没有实现整个规范。特别是TextEdit忽略了嵌入图像的RTF流。这对Apple来说是纯粹的懒惰。相反,Apple喜欢使用RTFD容器,其中包含图像和RTF代码链接到该图像。不幸的是,这些容器在Windows中不起作用。
这意味着什么? TextEdit和Windows之间没有真正的RTF兼容性,反之亦然。这是一个非常令人沮丧的问题,已经存在了很长时间。
我已经向Apple提交了错误报告,要求他们支持RTF规范。版本1.9可以下载here。