我想创建一个样式正确的 HTML 的 PDF 文档。这就是我正在尝试的:
QTextDocument *doc = new QTextDocument();
const char* s1 = "<html><head><style>body { font-family: sans-serif;}.note-atomic { background: rgb(242,242,242); width: 1000px; margin: 5px auto; border: 1px solid grey; border-radius: 8px;padding: 5px;}</style></head><body><div class = 'note-atomic'>Hi</div><img src = '/Users/attitude/Desktop/RnSghvV.png' width='400' height='300' /></body></html>";
doc->setHtml(QString::fromStdString(s1));
QPrinter *printer = new QPrinter();
printer->setOutputFileName("/Users/attitude/Desktop/fool.pdf");
printer->setOutputFormat(QPrinter::PdfFormat);
QPainter *painter = new QPainter();
painter->begin( printer );
doc->drawContents(painter, printer->pageRect().translated( -printer->pageRect().x(), - printer->pageRect().y() ));
doc->print(printer);
const char* s2 = "<html><body><div>Bye</div></body></html>";
doc->setHtml(QString::fromStdString(s2));
printer->newPage();
doc->drawContents(painter, printer->pageRect().translated( -printer->pageRect().x(), - printer->pageRect().y() ));
doc->print(printer);
painter->end();
我希望 PDF 有 2 页 - 第一个带有文本Hi,下一个和最后一个带有文本Bye。第一个页面的样式类似于它出现在具有相同标记的 HTML 页面中:
但是,PDF 的第一页内容完全混乱:
我如何使它看起来像预期的那样?
我在 HTML 文档中尝试的图像:http: //imgur.com/RnSghvV
平台 - Qt 5.3.1,32 位。OS X 优胜美地。