![需要基本帮助来提取 .rtf 文件,然后将标题写入 .wmf 文件](https://linux22.com/image/1585788/%E9%9C%80%E8%A6%81%E5%9F%BA%E6%9C%AC%E5%B8%AE%E5%8A%A9%E6%9D%A5%E6%8F%90%E5%8F%96%20.rtf%20%E6%96%87%E4%BB%B6%EF%BC%8C%E7%84%B6%E5%90%8E%E5%B0%86%E6%A0%87%E9%A2%98%E5%86%99%E5%85%A5%20.wmf%20%E6%96%87%E4%BB%B6.png)
任务:
我有数百个二进制 rtf 文件和数千个 wmf 文件,因此在 rtfs 中对这些图片使用 ^c,然后在图形程序(如 IrfanView)中使用 ^v 即可,但需要数月时间。
通过 Autohotkey 脚本,理论上我可以打开二进制 rtf 文件,并且理论上我可以为每个这样的图片提取 {\pic ...} 部分(我认为没有打开的“{”和关闭的“}”),然后将必要的标题放在剩余的 pic 字符串之前(为了使它们成为有效的“可放置的 wmf 文件”),然后将这些“正式完成”的字符串保存为文件,然后可以在某些图形程序(如 IrfanView)中打开这些文件或将它们批量转换回 jpg(这是最简单的部分,因为有工具可以做到这一点;它们在第一种情况下都是 jpg,在导入时已被 rtf 程序转换为 wmf)。
问题:
我需要知道需要检索作为核心图片数据的字符串到底是什么。我得到的是,
{\pict\wmetafile8\picw23492\pich13227\picwgoal13318\pichgoal7499 010009000003c8290a000000b2290a000000050000000b0200000000050000000c02ab33c45bb2 290a00430f2000cc000000f401780300000000ab33c45b000000002800000078030000f4010000 010018000000000020531400c40e0000c40e000000000000000000001e1a1 这里有数百万个类似的字符,那么:3b68761a77b52a77d53030000000000}
所以我想我必须删除前面的“{”和后面的“}”,然后必须在剩余的字符串前面放置一个有效的标题。
我不知道那个标题是什么,网络信息对我来说太复杂了,而且无论如何,我认为那个标题对于任何这样的结果图片文件来说都是相同的?
或者,我需要从 \wmetafile8\picw23492\pich13227\picwgoal13318\pichgoal7499 中读取这些值,然后删除该子字符串,然后考虑到这些值单独写入相应的标题?
此外,上述内容显然不是十六进制表示形式,尽管据说 rtf 中的此类 wmf 图片采用十六进制“格式”;在十六进制编辑器中,我可以看到两种表示形式,所以我想我必须知道在上面可读格式(Ansi)中要删除什么和添加什么,然后再将其全部转换为十六进制?
另外,我对必要的(十六进制)字符位置有疑问,因为在十六进制编辑器中,由于我在图片信息开始之前丢弃了所有字符串,所以在“顶部”的 \infos 和“真实”wmf 图片描述代码之间存在间隙。
rtf 程序具有导出为纯文本和 html 的功能;两种结果中都不会出现图片或其代码字符串,因此对此没有解决方案。
没有(商业或免费)工具来提取 wmf 字符串,更不用说他们会创建必要的标题以使这些字符串成为有效的文件。
理论上,可能存在一些工具或例程,它们只采用上述 wmf 字符串(不带添加的标题)并将其转换为有效的 jpg 文件(带有标题);如果有这样的工具或例程,我就不需要获取中间独立的 wmf 文件。
我已经尝试(部分)解决这些问题大约 15 个小时,通过阅读/尝试(我也尝试从网络上分析 wmf 文件头,但没有成功),所以我希望在这里获得更多信息,即使对于部分问题也是如此。