Преобразование .rtf в ресурс Mac .r, с помощью сценариев - PullRequest
0 голосов
/ 03 ноября 2010

В настоящее время у меня есть SLA в формате .rtf, который должен быть интегрирован в .dmg с использованием промежуточного формата ресурсов .r mac, который используется утилитой Rez.Я уже делал это вручную один раз, но обновления, внесенные в файл .rtf, являются огромными для распространения на образ диска и подвержены ошибкам.Я хотел бы автоматизировать эту задачу, что также может помочь при добавлении других языков или вариантов.

Как можно автоматизировать процесс преобразования текста .rtf в .r?

Спасибо.

Ответы [ 2 ]

1 голос
/ 17 ноября 2015

Только потому, что я не до конца понял, как принятый ответ действительно достиг цели, я использую комбинацию скрипта для генерации шестнадцатеричной кодировки:

#!/usr/bin/env ruby
# Makes resource (.r) text from binaries.

def usage
  puts "usage: #{$0} infile"
  puts ""
  puts "  infile   The file to convert (the output will go to stdout)"
  exit 1
end

infile = ARGV[0]    || usage

data = File.read(infile)
data.bytes.each_slice(16) do |slice|
  hex = slice.each_slice(2).map { |pair| pair.pack('C*').unpack('H*')[0] }.join(' ')

  # We could put the comments in too, but it probably isn't a big deal.
  puts "\t$\"#{hex}\""
end

Вывод этого вставляется в переменную во время сборки, а затем переменная заканчивается в шаблоне (мы используем Ant для этого, но особенности не особенно интересны):

data 'RTF ' (5000, "English SLA") {
@english.licence@
};

Единственное, что понадобилось для выяснения, - это то, что 'RTF ' может использоваться непосредственно для ресурса. Документы Apple говорят, что нужно отдельно вставлять 'TEXT' (только с простым текстом) и 'styl' (только со стилем). Конечно, есть инструменты для этого, но это был еще один инструмент, и я никогда не мог понять, как заставить гиперссылки работать в получающемся DMG. С 'RTF ' гиперссылки просто работают.

Надеясь, что это сэкономит кому-то время в будущем.

0 голосов
/ 03 ноября 2010

Используйте порт unrtf (из macports), затем отформатируйте строки, заголовок и хвост с помощью сценария оболочки.

...