将 rtfd 文件转换为 txt,而无需删除 OS X 中的超链接和图片

将 rtfd 文件转换为 txt,而无需删除 OS X 中的超链接和图片

我有很多(>10k...这无法手动完成) 的 rtf 和 rtfd 文件,我想将其转换为 txt 文件。不幸的是,它们包含我不想丢失的图片和超链接。理想情况下,我想:

  1. 将 rtf/rtfd 中的超链接存储为纯文本(类似于[[description]link]

  2. 将所有图片与 rtfd 文件“分离”

  3. 将带有 URL 的新 txt 以及 rtf/rtfd 文件中的图片一起保存在以旧 rtf/rtfd 文件命名的文件夹中。

如何才能做到这一点?

答案1

.rtfd只是TXT.rtf包含非标准格式说明的文件和图像的捆绑包。因此,您已经拥有了这些文件和单独的 RTF 文件。

RTF 文件只是带有一些格式化指令的文本,类似于 HTML。因此,您可以使用简单的基于文本的字符串替换。

在我的示例文档中嵌入的图像如下所示:

{{\NeXTGraphic Screen Shot 2012-02-01 at 19.47.21.png \width13940 \height11020
}¬}

在 RTF 文件中,将所有出现的更改\NeXTGraphic为“Image:”之类的内容;下次打开时,其他格式将被忽略(至少在我有限的测试中)。

嵌入的超链接如下所示:

{\field{\*\fldinst{HYPERLINK "http://superuser.com/questions/384862/osx-converting-rtfd-files-to-txt-without-deleting-hyperlinks-and-pictures"}}{\fldrslt applescript - OSX: Converting rtfd files to txt, without deleting hyperlinks and pictures - Super User}}\
\
}

同样,您可以在大多数您选择的编辑器中进行相当简单的文本替换,或者例如sed在命令行上使用。fldinst是底层超链接 URL,fldrslt是标签。


一旦您用纯文本兼容的替代方案替换了所有图像和超链接,您就可以简单地运行textutil -convert txt Document.rtfd/TXT.rtf将 RTF 文件转换为纯文本。

如果您事先没有替换嵌入的图像和超链接,这些内容将会丢失。


当然,textutil可以转换为 HTML 和图像文件而不会丢失信息。如果您更喜欢编写 HTML 标签替换脚本,则可以先执行此操作。

相关内容