Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过单线程Qt实现多线程Html到Pdf的转换_Html_Qt_Pdf - Fatal编程技术网

通过单线程Qt实现多线程Html到Pdf的转换

通过单线程Qt实现多线程Html到Pdf的转换,html,qt,pdf,Html,Qt,Pdf,我正在使用Qt webkit Jambi API将HTML转换为PDF 我的目标是为上述转换创建一个jar,以便在多线程环境中使用它,但由于QWebPage和QWebframe(QT webkit)是GUI类,因此不能从子线程初始化jar类 所以我被困住了,因为我不知道如何解决这个问题 我也是QT的新手,任何人都可以提供有关QT应用程序生命周期、事件循环和相关内容的良好参考 提前谢谢 Ashish事实上,我只是使用Firefox进行“打印到文件”并选择PDF作为文件类型。但这是手工操作——尽管我

我正在使用Qt webkit Jambi API将HTML转换为PDF

我的目标是为上述转换创建一个jar,以便在多线程环境中使用它,但由于QWebPage和QWebframe(QT webkit)是GUI类,因此不能从子线程初始化jar类

所以我被困住了,因为我不知道如何解决这个问题

我也是QT的新手,任何人都可以提供有关QT应用程序生命周期、事件循环和相关内容的良好参考

提前谢谢


Ashish

事实上,我只是使用Firefox进行“打印到文件”并选择PDF作为文件类型。但这是手工操作——尽管我想你可以编写Firefox脚本


我认为在Linux环境中——我假设Linux/Unix,因为您提到了Qt——您可能可以组合几个nx命令行应用程序。可能enscript有一些有用的东西。如果没有,我很确定我已经看到了其他的解决方案,只是一时想不起来。如果可以将HTML转换为Postscript,那么从中获取PDF就很简单。

事实上,我只是使用Firefox执行“打印到文件”并选择PDF作为文件类型。但这是手工操作——尽管我想你可以编写Firefox脚本

我认为在Linux环境中——我假设Linux/Unix,因为您提到了Qt——您可能可以组合几个nx命令行应用程序。可能enscript有一些有用的东西。如果没有,我很确定我已经看到了其他的解决方案,只是一时想不起来。如果您可以将HTML转换为Postscript,那么从中获取PDF就很简单。

如果HTML4和CSS1的(部分)满足您的需要,那么您可以在单独的线程中使用
QTextDocument
QPrinter

如果HTML4和CSS1的(部分)满足您的需要,然后,您可以在单独的线程中使用
QTextDocument
QPrinter

“使用Qt编程,第二版”,O'Reilly非常优秀,但仅涵盖Qt3。Qt4.5仍然有许多基本的功能

“使用Qt4进行C++GUI编程(第二版)”,ISBN 0132354160,还不错

Qt文档也包含示例和教程。

O'Reilly的“使用Qt编程,第二版”非常出色,但仅涵盖Qt3。Qt4.5仍然有许多基本的功能

“使用Qt4进行C++GUI编程(第二版)”,ISBN 0132354160,还不错


Qt文档也包含示例和教程。

我不清楚为什么不能从子线程中使用GUI类初始化jar。这是巨魔对Jambi设定的人为限制吗


我注意到这个例子,理论上不需要在屏幕上显示任何东西。QWebPage和QWebFrame都继承QObject。使用上面链接中的示例代码,应该可以在没有GUI的情况下获取网页的呈现内容。

我不清楚为什么不能在子线程中使用GUI类初始化jar。这是巨魔对Jambi设定的人为限制吗


我注意到这个例子,理论上不需要在屏幕上显示任何东西。QWebPage和QWebFrame都继承QObject。使用上面链接中的示例代码,应该可以在没有GUI的情况下获取网页的呈现内容。

我的主要任务是将html转换为pdf以打印pdf

<>我尝试让Qt占碑(Qt WebKIT C++ + API)在多线程环境中工作,但不能。p> 我的最终解决办法如下:

我使用了来自

编写了一个捕获标准输入和输出流的java包装器

为每个需要html到pdf转换的java线程初始化“wkhtmltopdf”二进制文件


此外,我从未听过二江的建议,因为那时我已经离开了任务,没有时间听他的建议。

我的主要任务是将html转换为pdf以打印pdf

<>我尝试让Qt占碑(Qt WebKIT C++ + API)在多线程环境中工作,但不能。p> 我的最终解决办法如下:

我使用了来自

编写了一个捕获标准输入和输出流的java包装器

为每个需要html到pdf转换的java线程初始化“wkhtmltopdf”二进制文件

此外,我从未听过二江的建议,因为那时我已经离开了任务,没有时间听他的建议。

那些“巨魔”:我喜欢那些脏话那些“巨魔”:我喜欢那些脏话