【问题标题】:Display text in UITextView from .docx从 .docx 在 UITextView 中显示文本
【发布时间】:2016-04-24 19:09:50
【问题描述】:

我想在我的UITextView .docx 中显示。没有外部库(我找不到)是不可能的。所以我尝试将(.docx 转换为.pdf).pdf 转换为.rft 并放入UITextView

let rtf = NSBundle.mainBundle().URLForResource("2", withExtension: "rtf", subdirectory: nil, localization: nil)      

let attributed = try NSAttributedString(fileURL: rtf, options:[NSDocumentTypeDocumentAttribute: NSRTFTextDocumentType], documentAttributes: nil)

textView.attributedText = attributed

有效,.rtf 文件显示在UITextView 中。但是,如果我手动进行复制和粘贴,转换 pdf 的过程不会保留他们弯曲的所有信息。如果我使用一个应用程序从糟糕变为更糟糕。

那么最好的方法是什么?

.pdf 和 .rtf 中相同部分的文本示例:

PDF 文件

RTF 文件

【问题讨论】:

  • 您需要您的用户编辑 UITextView 的文档还是仅仅查看它?如果您只需要查看 PDF,请使用 UIWebView。
  • 用户不需要查看 PDF。但我想要一个更漂亮的外观。为了提高学习本文档的便利性。
  • 所以澄清一下,他们不需要编辑文档,只需查看它?
  • 他们不需要编辑文档。

标签: ios string swift nsstring type-conversion


【解决方案1】:

由于您只需要查看文档,因此您应该在 UIWebView 中将其作为 PDF 进行查看。这将保留您的所有格式并提供最佳用户体验:

在您的视图控制器中,您将定义一个 Web 视图。这是一个通过 Storyboard 连接的示例:

@IBOutlet weak var webview: UIWebView!

然后您可以通过这种方式加载 PDF:

let pdf = NSBundle.mainBundle().URLForResource("2", withExtension: "pdf", subdirectory: nil, localization: nil)
let request = NSURLRequest(URL: pdf)
webview.loadRequest(request)
// You might want to scale the page to fit
webview.scalesPageToFit = true

【讨论】:

  • 我不想使用 UIWebView。最好的用户体验是在 UITextView 中显示文本
  • 好吧,您知道您的用户需要最好的,但在 iOS 中,为用户显示保留格式的最佳方式是带有 PDF 或 HTML 的 UIWebView。如果您继续尝试走 DOCX->PDF->RTF 的路线,您只会丢失格式。
  • 必须有另一种方式。
  • 不要气馁,但您不会找到将其作为属性文本放入 UITextView 并使其呈现与 PDF 相同的好方法。这是 PDF 格式的全部原因,以便您可以准确地呈现文档。我认为你能做的最好的事情是尝试另一种 DOCX 到 RTF 的转换器,但无论你做什么,迁移到 RTF 都会丢失一些格式。
  • 我也有同样的问题。我必须从服务器下载 .docx 文件并将其文本显示到 UITextView 中,用户也可以对其进行编辑。我找到了 SNDocx​​ 库,但它有时无法按预期工作。欢迎提出任何建议。
猜你喜欢
  • 1970-01-01
  • 2011-01-28
  • 2012-07-26
  • 1970-01-01
  • 2014-10-30
  • 1970-01-01
  • 2017-09-27
  • 1970-01-01
相关资源
最近更新 更多