.rtfd
são apenas pacotes de um arquivo TXT.rtf
com instruções de formatação não padrão e as imagens. Então você já tem estes e o arquivo RTF separado.
Os arquivos RTF são apenas o texto com algumas instruções de formatação, semelhantes ao HTML. Assim, você pode usar substituições de strings baseadas em texto simples.
Uma imagem incorporada tem esta aparência no meu documento de amostra:
{{\NeXTGraphic Screen Shot 2012-02-01 at 19.47.21.png \width13940 \height11020
}¬}
No arquivo RTF, altere todas as ocorrências de \NeXTGraphic
para algo como "Imagem:"; a outra formatação será simplesmente ignorada quando você abri-la na próxima vez (pelo menos no meu teste limitado).
Um hiperlink incorporado é assim:
{\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}}\
\
}
Mais uma vez, a substituição de texto bastante simples, que você pode fazer na maioria dos editores de sua escolha, ou, e. usando sed
na linha de comando. fldinst
é o URL de hiperlink subjacente, fldrslt
é o rótulo.
Depois de substituir todas as imagens e hiperlinks por alternativas compatíveis com texto sem formatação, basta executar textutil -convert txt Document.rtfd/TXT.rtf
para converter o arquivo RTF em texto sem formatação.
Se você não tivesse feito as substituições da imagem incorporada e dos hiperlinks anteriormente, eles teriam sido perdidos.
É claro que textutil
pode converter arquivos HTML e de imagem sem perder informações. Se você se sentir mais confortável ao criar scripts para as substituições de tags HTML, poderá fazer isso primeiro.