我想從HTML和CSS文件創建一個PDF文件。目前我正在使用QWeb使用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