Qt提供了以文本、圖片、HTML等方式來實現對文檔的操作,主要用到了QPrinter類和QPainter類,用到了QFileDialog文件窗口、QPrintPreviewDialog預覽窗口類和QPrintDialog打印窗口類,Qt5也提供了QPdfWriter類來實現對pdf的操作,這里并不包括打開pdf文件,Qt沒有提供任何方法來直接像文件瀏覽器一樣打開pdf文件,可以用第三方庫來實現。
這里采用了圖片的方式來實現保存、預覽和打印,其實 三個功能基本上一樣。
1、保存PDF
(1)保存某個控件里的內容
一些輸入類控件可以直接調用print()函數,一些顯示類的控件可以直接調用render()函數,一些控件不具備這個功能。代碼如下:
void MainWindow::on_btnSave_clicked(){ QString fileName = QFileDialog::getSaveFileName(this, tr("導出PDF文件"), QString(), "*.pdf"); if (!fileName.isEmpty()) { // 如果文件后綴為空,則默認使用.pdf if (QFileInfo(fileName).suffix().isEmpty()) { fileName.append(".pdf"); } QPrinter printer; // 指定輸出格式為pdf printer.setOutputFormat(QPrinter::PdfFormat); printer.setOutputFileName(fileName); // ui->textEdit->print(&printer); ui->tableWidget->render(&printer); }}
(2)保存某些控件里的內容
這里需要將要保存的所有內容放在一個容器里面,比如放在QWidget上,同樣可以用上面的方式來保存,下面用的是以圖片的方式來保存。代碼如下:
void MainWindow::on_btnSave_clicked(){ QString fileName = QFileDialog::getSaveFileName(this, tr("保存PDF文件"), QString(), "*.pdf"); if (!fileName.isEmpty()) { // 如果文件后綴為空,則默認使用.pdf if (QFileInfo(fileName).suffix().isEmpty()) { fileName.append(".pdf"); } QPrinter printerPixmap(QPrinter::HighResolution); //自定義紙張大小,這里要打印的內容都在stackedWidget上 printerPixmap.setPageSize(QPrinter::Custom); printerPixmap.setPaperSize(QSizeF(ui->stackedWidget->height(), ui->stackedWidget->width()), QPrinter::Point); //設置紙張大小為A4,這里注釋掉了,建議自定義紙張 ,否則保存的就會有很多空白 //printerPixmap.setPageSize(QPrinter::A4); //橫向打印 printerPixmap.setOrientation(QPrinter::Landscape); //設置輸出格式為pdf printerPixmap.setOutputFormat(QPrinter::PdfFormat); //設置輸出路徑 printerPixmap.setOutputFileName(fileName); //獲取界面的圖片 QPixmap pixmap = QPixmap::grabWidget(ui->stackedWidget, ui->stackedWidget->rect()); QPainter painterPixmap; painterPixmap.begin(&printerPixmap); QRect rect = painterPixmap.viewport(); int x = rect.width() / pixmap.width(); int y = rect.height() / pixmap.height(); //將圖像(所有要畫的東西)在pdf上按比例尺縮放 painterPixmap.scale(x, y); //畫圖 painterPixmap.drawPixmap(0, 0, pixmap); painterPixmap.end(); QMessageBox::information(this, tr("生成PDF"), tr("保存PDF文件成功"), QMessageBox::Ok); }}
2、瀏覽
Qt沒有提供瀏覽pdf的方式,可以通過使用第三方庫Poppler來實現,這里是相關文件:官網,編譯好的庫文件,所有文件的文件包,實現pdf閱讀器??梢酝ㄟ^官方的源碼來編譯庫,不過可能會非??部?。
亚洲高清在线观看| y97精品国产97久久久久久| 国产91在线播放九色快色| 97视频在线观看网址| 97视频国产在线| 欧美人与性动交| 久久精品国产96久久久香蕉| 欧美裸体xxxx极品少妇| 日韩欧美中文免费| 中文字幕无线精品亚洲乱码一区| 欧美韩日一区二区| 91国自产精品中文字幕亚洲| 欧美国产视频一区二区| 成人av在线亚洲| 91天堂在线视频| 亚洲一区二区中文字幕| 亚洲精品v欧美精品v日韩精品| 成人免费激情视频| 欧美色播在线播放| 97色在线视频观看| 国产成人一区二区三区电影| 国产精品偷伦免费视频观看的| 亚洲欧美国产视频| 亚洲成人性视频| 欧美另类老女人| 欧美日韩成人免费| 免费av在线一区| 国产精品欧美一区二区| 成人午夜在线观看| 亚洲jizzjizz日本少妇| 亚洲成人久久电影| 国产视频久久久| 亚洲午夜av久久乱码| 国产亚洲欧洲高清一区| 精品国产一区二区三区久久狼5月| 欧美成人黄色小视频| 国产在线观看精品一区二区三区| 国产精品电影在线观看| 欧美日韩另类视频| 久久久久久国产三级电影| 色多多国产成人永久免费网站| 在线精品91av| 欧美成人黑人xx视频免费观看| 欧美激情videoshd| 国产精品91视频| 一区二区三区四区视频| 久久人人爽人人| 国产网站欧美日韩免费精品在线观看| 日韩欧美国产骚| 国产精品久久久久久久久久99| 国产成人精品亚洲精品| 欧美日韩国产一区二区| 欧美亚洲伦理www| 亚洲国产欧美在线成人app| 久久久精品网站| 91精品久久久久久久久不口人| 久久久精品999| 国产一区二区三区免费视频| 日韩国产欧美精品一区二区三区| 亚洲欧洲视频在线| 久久91亚洲精品中文字幕奶水| 91亚洲国产成人精品性色| 91久久国产精品91久久性色| 一本色道久久综合狠狠躁篇怎么玩| 国产精品视频专区| www.亚洲成人| 亚洲大胆美女视频| 91丝袜美腿美女视频网站| 国产成人精品亚洲精品| 亚洲视频电影图片偷拍一区| 亚洲女人天堂成人av在线| 成人免费在线视频网址| 欧美成aaa人片在线观看蜜臀| 555www成人网| 国产精品第七十二页| 国产一区二区视频在线观看| 成人免费网站在线看| 国产精品99久久久久久白浆小说| 久久亚洲精品中文字幕冲田杏梨| 欧美天堂在线观看| 亚洲精品国产拍免费91在线| 日韩精品丝袜在线| 亚洲电影免费观看高清完整版在线观看| 国产精品视频男人的天堂| 亚洲精品中文字幕av| 国产精品福利在线观看| 欧美韩国理论所午夜片917电影| 欧美国产日本在线| 亚洲黄页网在线观看| 91超碰中文字幕久久精品| 国产亚洲欧美aaaa| 亚洲精品一区二区网址| 国产99久久精品一区二区永久免费| 久久久久久久久综合| 亚洲国产精品资源| 成人黄色大片在线免费观看| 国产精品成人va在线观看| 夜夜躁日日躁狠狠久久88av| 欧美一级免费看| 热久久美女精品天天吊色| 久久久久国色av免费观看性色| 欧美日韩免费观看中文| 亚洲毛片在线观看| 高清欧美一区二区三区| 欧美在线亚洲一区| 亚洲午夜精品久久久久久性色| 日韩国产精品视频| 日韩国产欧美精品一区二区三区| 久久国产精品久久国产精品| 激情懂色av一区av二区av| 欧美激情国产日韩精品一区18| 日本成熟性欧美| 国产精品中文字幕久久久| 国产精品久久久久av免费| 97久久精品视频| 中文字幕日韩精品有码视频| 精品二区三区线观看| 午夜精品一区二区三区在线视| 中文字幕欧美日韩在线| 久久九九国产精品怡红院| 亚洲精品成人久久电影| 亚洲精品久久久久久久久久久久久| 国产精品视频精品视频| 亚洲国产精品一区二区三区| 国产丝袜一区二区三区| 国产欧美一区二区三区久久| 最新日韩中文字幕| 午夜精品福利在线观看| zzjj国产精品一区二区| 欧美性xxxxx| 97在线免费观看| 国产日韩欧美在线播放| 亚洲裸体xxxx| 成年无码av片在线| 亚洲精品国产精品久久清纯直播| 555www成人网| 午夜精品一区二区三区在线播放| 国产精品久久久久久久av电影| 日韩欧美中文在线| 最近2019年日本中文免费字幕| 久久成人av网站| 精品无码久久久久久国产| 亚洲影院污污.| 亚洲人成电影网站色xx| 色悠悠久久久久| 欧美成人在线免费视频| 久久亚洲精品中文字幕冲田杏梨| 成人精品一区二区三区| 亚洲欧美变态国产另类| 欧美成人性色生活仑片| 日韩激情在线视频| 91av视频在线观看| 成人羞羞国产免费| 成人国产精品色哟哟| 国产免费观看久久黄| 久久精品国产亚洲精品2020| 久久国产精品久久精品| 欧美日韩在线第一页| 亚洲最大成人网色| 夜夜狂射影院欧美极品| 国产成人高清激情视频在线观看| 久久久爽爽爽美女图片| 久久久久久久久久av| 欧洲永久精品大片ww免费漫画|