![Конвертация файлов rtfd в txt без удаления гиперссылок и картинок в OS X](https://rvso.com/image/1303463/%D0%9A%D0%BE%D0%BD%D0%B2%D0%B5%D1%80%D1%82%D0%B0%D1%86%D0%B8%D1%8F%20%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%20rtfd%20%D0%B2%20txt%20%D0%B1%D0%B5%D0%B7%20%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%B3%D0%B8%D0%BF%D0%B5%D1%80%D1%81%D1%81%D1%8B%D0%BB%D0%BE%D0%BA%20%D0%B8%20%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BE%D0%BA%20%D0%B2%20OS%20X.png)
У меня естьмного(>10k ... это нельзя сделать вручную) файлов rtf и rtfd, которые я хотел бы преобразовать в файлы txt. К сожалению, они содержат изображения и гиперссылки, которые я не хочу потерять. В идеале я бы хотел:
иметь гиперссылки из rtf/rtfd, сохраненные в виде обычного текста (что-то вроде
[[description]link]
)все изображения «отделены» от файла rtfd
сохраните новый текстовый файл с URL-адресами, а также изображения из файла 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-тегов, вы можете сделать это в первую очередь.