0

私は現在、.rtf 形式の SLA を持っています。これは、Rez ユーティリティで使用される中間の .r mac リソース形式を使用して .dmg に統合されます。私はすでに一度手動で行ったことがありますが、.rtf ファイルに加えられた更新は、ディスク イメージに伝播するのが圧倒的であり、エラーが発生しやすくなっています。このタスクを自動化したいと考えています。これは、他の言語やバリアントの追加にも役立つ可能性があります。

.rtf から .r テキストへの変換プロセスをどのように自動化できますか?

ありがとう。

4

2 に答える 2

1

受け入れられた回答が実際にどのように目標を達成したかを完全には理解していなかったという理由だけで、スクリプトの組み合わせを使用して 16 進エンコーディングを生成します。

#!/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'(スタイルのみ) を別々に挿入するように指示されています。もちろん、これを行うためのツールはありますが、実行するツールが 1 つ増え、作成された DMG でハイパーリンクを機能させる方法がわかりませんでした。では'RTF '、ハイパーリンクが機能します。

これが将来誰かの時間を節約することを願っています。

于 2015-11-17T01:39:08.077 に答える
0

(macportsからの)ポートを使用してunrtfから、シェルスクリプトを使用して行、見出し、末尾をフォーマットします。

于 2010-11-03T12:52:35.823 に答える