【问题标题】:Cocoa RTF: NSData vs. NSAttributedString?Cocoa RTF:NSData 与 NSAttributedString?
【发布时间】:2014-01-15 18:14:34
【问题描述】:

我的 Cocoa 应用需要使用 RTF 生成文档。经过大量搜索,我还没有找到在 RTF 文档中提供页脚的 Cocoa-native 方式。出于这个原因,我似乎必须生成 RTF 代码,而不仅仅是以 RTF 格式保存 NSAttributedString。

假设我正在生成 RTF 代码,例如:

....\pgnstart1 {\fs24\scaps\b\qc Table 1\par\ql\fs18 \par....

在将其保存到磁盘之前,我应该将其存储到 NSData 对象还是 NSAttributedString 对象?

提前感谢大家提供任何信息。

【问题讨论】:

  • 您在NSAttributedString AppKit Additions 中找到RTF 方法了吗?您可以创建/生成 RTF 到/从NSAttributedStrings。到目前为止,您尝试了什么?
  • @boyfarell 他说他需要生成它以便有页脚。我也没有完全明白这个问题

标签: cocoa nsdata rtf nsattributedstring


【解决方案1】:

我认为 Cocoa 的 RTF 读/写子集不支持页脚。您必须自己创建它们,但将它们放入您的 RTF 流将是一件苦差事。如果您有 RTF 解析器,则必须对从 NSAttributedString 获得的原始 RTF 进行后处理,以插入您的自定义 RTF。

不好玩。 RTF 解析器从未真正设计成可扩展的。

【讨论】:

  • 幸运的是,我正在移植一个已经知道如何生成我需要的 RTF 代码的应用程序。 (写它确实是很多工作)。
  • (哎呀 - 编辑期间超时。)我可以轻松地将所需的 RTF 代码直接写入磁盘上的文本文件。使用 NSAttributedStrings [计算文本高度][1] 可能会有所帮助。如果是这样,我需要将我的 RTF 代码转换为 NSAttributedString 的形式。我想我需要 1) 将原始 rtf 代码流放入 NSData 对象,然后 2) 使用 initWithRTF:documentAttributes: 将其放入 NSAttributedString。看起来很复杂。 :) 但这会是正确的方法吗? [1]:sheepsystems.com/sourceCode/sourceStringGeometrics.html
  • 是的,这就是我要使用的方法。
  • 非常感谢,威尔。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-18
  • 1970-01-01
相关资源
最近更新 更多