android - 如何将 Microsoft Word 文件内容嵌入到 Flutter 应用程序中而不使用富文本重写

标签 android ios flutter ms-word richtextbox

我正在开发适用于 Android 和 IOS 的 Flutter 应用程序,我想嵌入客户端提供的 Microsoft Word 文件 .docx.doc 的内容可在应用程序的“关于”屏幕中查看。

文件很长,我无法使用 Rich text widget 重写它。该文件很简单并且没有图像。

我做了一些研究,发现了一些关于将文件转换为 pdf 并嵌入 pdf View 的解决方案。我也不喜欢它,因为内容不会作为应用程序的一部分显示,并且页面分隔符仍然存在。

最佳答案

经过长时间的研究,我发现flutter_widget_from_html package 这是一个令人惊奇的包,它可以将简单的 HTML 转换为 flutter 小部件,并让您可以选择将其用作 webview 或仅用于渲染静态 Html。

我们现在需要将此包添加到 pubspec.yaml 中,请始终设置 latest version

dependencies:
  flutter_widget_from_html: ^0.3.2+1

现在的挑战是将 Word 文档转换为简单的 HTML,无需 js 或外部 css 文件

我设法找到了那个免费网站 https://wordhtml.com/它允许您将 Word 文件内容粘贴到其编辑器中,它会将其直接转换为 HTML

最后一步是从 HTML 选项卡复制内容并将其插入到小部件

const kHtml = """
<h1>Heading</h1>
<p>A paragraph with <strong>strong</strong> <em>emphasized</em> text.</p>
<ol>
  <li>List item number one</li>
  <li>
    Two
    <ul>
      <li>2.1 (nested)</li>
      <li>2.2</li>
    </ul>
  </li>
  <li>Three</li>
</ol>
<p>Thank you</p>
""";

class HelloWorldScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) => Scaffold(
        appBar: AppBar(
          title: Text('HelloWorldScreen'),
        ),
        body: HtmlWidget(
          kHtml,
          webView: false,
        ),
      );
}

就我而言,我希望内容可以滚动,因此我用 ListView 包围了 HtmlWidget

class HelloWorldScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) => Scaffold(
        appBar: AppBar(
          title: Text('HelloWorldScreen'),
        ),
        body: ListView(
          shrinkWrap: true,
          children: <Widget>[
            HtmlWidget(
                kHtml,
              ),
          ],
        )
      );
}

关于android - 如何将 Microsoft Word 文件内容嵌入到 Flutter 应用程序中而不使用富文本重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59881326/

相关文章:

java - Socket.IO-client.java 反复断开和重新连接

android - HTTPS 与 Ksoap2 Android 问题

ios - ScrollView didEndDragging 时预测可见索引路径

ios - 如何推迟状态为 "Waiting for review"的iOS应用程序

flutter - 如果 BLoC 流未分配给变量,我是否需要处置它们?

flutter - 我可以找到 “flutter pub list”或 “flutter pub search”命令行工具吗?

android - 我可以在不膨胀/重新膨胀布局的情况下向 ScrollView 添加 View 吗?

php - 通过android编辑mysql

ios - 从后台更新后从 View 层次结构中删除以前的 View Controller

android - 在Flutter FireBase中,Google Sign如何为我的给定代码维护持久性标志