Gtkwebkit,将html保存为pdf
最近几天,我寻找将 html 文件转换为 pdf 的最佳和最短的方法。由于我使用 C 程序创建 html 文件,并通过使用 cairo 的 gtkwebkit 查看它们,因此它应该是使用 C 将显示页面的内容转换为 html 的有效且直接的方法(我认为)。 但在网上找不到任何示例或方向。
到目前为止,在不同的虚拟打印机中,我只找到了用 perl 制作的命令行工具或依赖于 qt 的不想要的工具。
请提供任何建议、示例或建议,以从 gtkwebkit 获取此功能,如果没有,也许可以使用一些小型 C 库。
Last days I search for best and shortest way to convert html files to pdf. Since I create my html files with C program and see them through gtkwebkit which uses cairo it should be some efficient and direct way to convert content of showed page to html with C (I think).
But can't find any example or direction to go on the net.
Until now, among different virtual printers, I find only commandline tools which are maded in perl or which depends on qt what is not wanted.
Please for any suggestion, example or advice to get this functionality from gtkwebkit and if not, maybe something with some tiny C library.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
据我从阅读文档中得知(我自己还没有尝试过):
webkit_web_view_get_main_frame()
。创建
GtkPrintOperation
gtk_print_operation_new()。export-file
属性设置为要导出到的 PDF 的名称。webkit_web_frame_print_full()
打印框架。确保将GTK_PRINT_OPERATION_ACTION_EXPORT
作为“action”参数传递。As far as I can tell from reading the documentation (haven't tried it out myself):
webkit_web_view_get_main_frame()
.GtkPrintOperation
withgtk_print_operation_new()
.export-file
property on your print operation to be the name of the PDF you want to export to.webkit_web_frame_print_full()
. Make sure to passGTK_PRINT_OPERATION_ACTION_EXPORT
as the 'action' parameter.我曾经编写过一些代码,无需打开窗口即可完成此任务。但后来我遇到了从多个线程(例如在网络服务器中)使用该代码的问题。我做了一些研究,发现 gtk 本身是单线程的。因此,我通过将打印操作排队到主线程,使代码线程安全。无论如何,如果有帮助,请查看... https://github.com/gnudles/wkgtkprinter
I once wrote some code, to accomplish that without opening a window. But then I ran into a problem with using that code from multiple threads (in a webserver e.g.). I made some research and I figured out that gtk itself is single threaded. So I made my code thread safe, by queuing the print operations to the main thread. Anyway, if it helps, check it out... https://github.com/gnudles/wkgtkprinter