Я хочу создать pdf-файл из html и CSS-файла. В настоящее время я пытаюсь использовать QT с помощью QWebView, поскольку QwebEngineView не поддерживается для Ubuntu, поскольку нет MVC2013 или хрома.QT html и CSS для создания pdf без QWebEngineView
Я хочу, чтобы создатель был независимым от платформы. Я показываю весь код здесь
QDir::setCurrent(QCoreApplication::applicationDirPath());
QFile htmlFile ("myhtml.html");
if (!htmlFile.open(QIODevice::ReadOnly | QIODevice::Text)){
return -1;
}
QWebView *pWebView = new QWebView();
pWebView->load(QUrl::fromLocalFile(QFileInfo(htmlFile).path()));
QPrinter printer(QPrinter::HighResolution);
printer.setPageSize(QPrinter::A4);
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName("output.pdf");
pWebView->print(&printer);
delete pWebView;
Файл HTML выглядит следующим образом
<html>
<head>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<h1> <center> ULTRA TECH LABORATORIES PRIVATE LIMITED </center> </h1>
<h3> <center> CLOTH MARKET, G.E. ROAD KUMHARI, DIST-DRUG(C.G.) </center> </h3>
<h1> <center> TLD MONITORING SERVICE - DOSE REPORT </center> </h1>
<p>
INSTITUTION NO. 017303
<span>SERVICE PERIOD: APR-JUN 2012</span>
</p>
<p>
ASHOK LABORATORY, KOLKATA
<span>SERVICE FREQUENCY: QUARTERLY</span>
</p>
<center>
<ul>
<li>lorem ipsum dolor</li>
<li>sit amet</li>
<li>foo</li>
<li>bar</li>
</ul>
</center>
</body>
Файл CSS выглядит следующим образом
ul {
width: 500px;
}
li {
width: 50%;
float: left;
border: 1px solid #000;
margin: 0;
list-style-type: none;
box-sizing: border-box;
}
li:nth-child(odd) {
clear: left;
}
p {
text-align:left;
}
span {
float:right;
}
Я также попытался QWebView :: setHtml() и QWebView :: setDefaultStyleSheet() Они также дают неформатированный вывод. – user3864806
Я нахожу эту библиотеку wkhtmltopdf, которая использует QtWebKit для этого. Я пытаюсь выяснить, как они это делают, но код испорчен. – user3864806