【发布时间】:2018-06-07 13:25:38
【问题描述】:
有没有办法使用 QPainter 和 QPdfWriter 将 QAbstractItemView(例如 QTableWidget)的内容打印到 QPaintDevice(PDF 文件)中?
非常感谢你的 insear,她是最终的代码:
QPdfWriter pdf("D:/padf.pdf");
pdf.setPageSize(QPagedPaintDevice::A4);
pdf.setPageMargins(QMargins(30,30,30,30));
QPainter *painter= new QPainter(&printer);
painter->setPen(Qt::black);
painter->setFont(QFont("Time",60));
QTableWidget table;
table.setFont(QFont("Ariel",60));
table.setColumnCount(4);
table.setRowCount(100);
int c = 0;
int b = 0;
for(int i = 0;i< 100 ; i++)
{
for(int h = 0 ;h<4;h++)
{
table.setItem(i,h,new QTableWidgetItem("test \n test"));
}
}
table.resizeColumnsToContents();
table.resizeRowsToContents();
for( int i = 0; i < 4 ; i++ ) {
c += table.columnWidth(i);
}
for( int i = 0; i < 100 ; i++ ) {
b += table.rowHeight(i);
}
table.setFixedSize(c+50,b+50);
table.render(painter,QPoint(1000,1000));
painter->end();
【问题讨论】: