在 QT 中,如何将带有内部调用的 javascript 的 html 转换为 pdf 文件
Posted
技术标签:
【中文标题】在 QT 中,如何将带有内部调用的 javascript 的 html 转换为 pdf 文件【英文标题】:in QT, how to convert html with javascript called inside to pdf file 【发布时间】:2017-03-13 07:36:36 【问题描述】:我的应用程序基于 qt quick。因此不支持小部件。 我正在尝试将 html 文件转换为 pdf,其中包含 javascript。 html如下:
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>ECharts</title>
</head>
<body>
<div id="main" style="width:600px;height:400px;"></div>
**<script src="echarts.js"></script>**
<script type="text/javascript">
var myChart = echarts.init(document.getElementById('main'));
有什么方法可以在javascript生效的情况下将此html文件转换为pdf?
【问题讨论】:
【参考方案1】:您将需要一个 Web 渲染引擎来使用输入并相应地执行脚本,然后让它打印结果。
例如使用QWebEnginePage 和一个如果它的printToPdf()
函数。
【讨论】:
你好,在qt快速应用下可以使用这个吗?我们的项目就是以此为基础的。 取决于您是否要显示 HTML 内容以及打印它。如果要显示它,请在QtQuick
中使用WebEngineView
元素。 QWebEnginePage
类没有或不需要任何 UI,因此如果您只关心解释和打印 HTML 内容,您仍然可以在应用程序的 C++ 部分中使用它【参考方案2】:
查看此堆栈问题:QWebEngine: print a page?
通过使用基于 Chromium 的新引擎或旧版 webkit,您将找到打印 webview 的正确方法。这两个选项与 Qt Quick 完全兼容。
您也可以使用QTextView 通过加载 HTML 来打印数据。
【讨论】:
以上是关于在 QT 中,如何将带有内部调用的 javascript 的 html 转换为 pdf 文件的主要内容,如果未能解决你的问题,请参考以下文章