0

我目前有一个 .rtf 格式的 SLA,它将使用 Rez 实用程序使用的中间 .r mac 资源格式集成到 .dmg 中。我已经手动完成了一次,但是对 .rtf 文件的更新难以传播到磁盘映像,并且容易出错。我想自动化这项任务,这也有助于添加其他语言或变体。

.rtf 到 .r 文本转换的过程如何实现自动化?

谢谢。

4

2 回答 2

1

只是因为我没有完全理解接受的答案实际上是如何实现目标的,所以我使用脚本的组合来生成十六进制编码:

#!/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 ',超链接才有效。

希望这可以节省将来的时间。

于 2015-11-17T01:39:08.077 回答
0

使用unrtf端口(来自 macports),然后使用 shell 脚本格式化行、标题和尾部。

于 2010-11-03T12:52:35.823 回答