android - 如何在不使用富文本重写的情况下将 Microsoft Word 文件内容嵌入到 Flutter 应用程序中
问题描述
我正在为 Android 和 IOS 开发一个颤振应用程序,我想嵌入 Microsoft Word 文件的内容.docx
或.doc
由客户端提供以在应用程序的“关于”屏幕中查看。
该文件很长,我无法使用Rich text widget重写它。该文件很简单,没有图像。
我做了一些研究,发现了一些关于将文件转换为 pdf 并嵌入 pdf 视图的解决方案。我也不喜欢它,因为内容不会显示为应用程序的一部分,并且页面分隔符仍然存在。
解决方案
经过长时间的研究,我发现了 flutter_widget_from_html包,这是一个了不起的包,它可以将您的简单组件转换HTML
为颤振小部件,并让您可以选择将其用作 webview 或仅用于呈现静态 Html。
我们现在需要将此包添加到pubspec.yaml
,请始终设置最新版本
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,
),
);
}
就我而言,我希望内容可以滚动,所以我用列表视图包围了 HtmlWidget
class HelloWorldScreen extends StatelessWidget {
@override
Widget build(BuildContext context) => Scaffold(
appBar: AppBar(
title: Text('HelloWorldScreen'),
),
body: ListView(
shrinkWrap: true,
children: <Widget>[
HtmlWidget(
kHtml,
),
],
)
);
}
推荐阅读
- nodes - 使用属性数据的 DemoBench
- javascript - 用js正确捕捉第10个字符
- python-3.x - 无法为 Tesseract v4 安装 tesserocr - MacOS
- javascript - 使用 innerHTML() 并将 javascript 变量值插入 HTML 的问题
- javascript - 如何在我的循环中用 html 制作一个带有彩虹颜色的按钮?
- database-connection - 使用 R 连接到 teradata 服务器
- mysql - 有一个带有连接和联合的 select 语句,但无法正常工作
- javascript - 使用 dom 元素属性 data-timer-id 调用 setInterval(),只运行一次
- javascript - 嗨,我怎样才能将变量(i)的值放在括号中?
- python - 从 pandas 数据框中删除非 ASCI 字符