1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > html页面导出pdf截断问题 利用wkhtmltopdf(thead)将网页导出为pdf方法;以及存在表格

html页面导出pdf截断问题 利用wkhtmltopdf(thead)将网页导出为pdf方法;以及存在表格

时间:2021-12-19 21:39:50

相关推荐

html页面导出pdf截断问题 利用wkhtmltopdf(thead)将网页导出为pdf方法;以及存在表格

1、将html文件转为pdf文件的函数:

html_path-----html路径;pdf_path-----pdf路径 bool HtmlToPdf(QString html_path, QString pdf_path) { QFile::remove(pdf_path); int result = 0; wkhtmltopdf_global_settings * gs; wkhtmltopdf_object_settings * os; wkhtmltopdf_converter * c; /* Init wkhtmltopdf in graphics less mode */ wkhtmltopdf_init(false); /* * Create a global settings object used to store options that are not * related to input objects, note that control of this object is parsed to * the converter later, which is then responsible for freeing it */ gs = wkhtmltopdf_create_global_settings(); myassert(wkhtmltopdf_set_global_setting(gs, "collate", "true")); myassert(wkhtmltopdf_set_global_setting(gs, "outline", "true")); myassert(wkhtmltopdf_set_global_setting(gs, "margin.top", "2cm")); myassert(wkhtmltopdf_set_global_setting(gs, "out", pdf_path.toUtf8().data())); myassert( wkhtmltopdf_set_global_setting(gs, "load.cookieJar", "myjar.jar")); /* * Create a input object settings object that is used to store settings * related to a input object, note again that control of this object is parsed to * the converter later, which is then responsible for freeing it */ os = wkhtmltopdf_create_object_settings(); /* We want to convert to convert the qstring documentation page */ myassert(wkhtmltopdf_set_object_setting(os, "page", html_path.toUtf8().data())); myassert(wkhtmltopdf_set_object_setting(os, "toc.indentation", "2em")); myassert(wkhtmltopdf_set_object_setting(os, "useExternalLinks", "true")); myassert(wkhtmltopdf_set_object_setting(os, "web.loadImages", "true")); myassert(wkhtmltopdf_set_object_setting(os, "web.background", "true")); myassert(wkhtmltopdf_set_object_setting(os, "web.defaultEncoding", "utf-8")); /* Create the actual converter object used to convert the pages */ c = wkhtmltopdf_create_converter(gs); /* Call the progress_changed function when progress changes */ wkhtmltopdf_set_progress_changed_callback(c, progress_changed); /* Call the phase _changed function when the phase changes */ wkhtmltopdf_set_phase_changed_callback(c, phase_changed); /* Call the error function when an error occurs */ wkhtmltopdf_set_error_callback(c, error); /* Call the warning function when a warning is issued */ wkhtmltopdf_set_warning_callback(c, warning); /* * Add the the settings object describing the qstring documentation page * to the list of pages to convert. Objects are converted in the order in which * they are added */ wkhtmltopdf_add_object(c, os, NULL); /* Perform the actual conversion */ myassert(wkhtmltopdf_convert(c)); /* Output possible http error code encountered */ errcode = wkhtmltopdf_http_error_code(c); printf("httpErrorCode: %d\n", errcode); //QMessageBox::critical(nullptr, QString::number(errcode), // QString("httpErrorCode: %1").arg(QString::number(errcode))); /* Destroy the converter object since we are done with it */ wkhtmltopdf_destroy_converter(c); /* We will no longer be needing wkhtmltopdf funcionality */ myassert(wkhtmltopdf_deinit()); return true; }

2、下图是html转dpf时出现的问题

这是修复好的pdf

3、解决方案

在对应的html文件里面添加如下:

table, tr, td, th, tbody, thead, tfoot {page-break-inside: avoid !important;}即可解决

激光扫描安全距离检测报告

html页面导出pdf截断问题 利用wkhtmltopdf(thead)将网页导出为pdf方法;以及存在表格图片被分页打断的问题解决方法...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。