# QtPreviewPDFByQPrintPreviewWidget **Repository Path**: Qwyi/qt-preview-pdf-qprint-preview-widget ## Basic Information - **Project Name**: QtPreviewPDFByQPrintPreviewWidget - **Description**: Qt程序内预览PDF文件,不采用外部第三方库。仅使用Qt内置的QPrinter,QPrintPreviewWidget,QPainter 实现pdf文件预览功能。同时支持放大,缩小功能。 目前大家都是采用外部第三方库:Poppler,mupdf, PDFium,但是这些都需要进行自己编译Qt版本的库。编译过程不同的库,难度不一。为避免编译和版权问题,提供一种采用Qt内部的类实现PDF文件预览思路 - **Primary Language**: C++ - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 10 - **Forks**: 3 - **Created**: 2021-12-01 - **Last Updated**: 2024-11-15 ## Categories & Tags **Categories**: desktop-ui **Tags**: Qt, pdf, QPrintPreviewWidget ## README # QtPreviewPDFByQPrintPreviewWidget #### 介绍 Qt程序内预览PDF文件,不采用外部第三方库。仅使用Qt内置的QPrinter,QPrintPreviewWidget,QPainter 实现pdf文件预览功能。同时支持放大,缩小功能。 目前大家都是采用外部第三方库:Poppler,mupdf, PDFium,但是这些都需要进行自己编译Qt版本的库。编译过程不同的库,难度不一。为避免编译和版权问题,提供一种采用Qt内部的类实现PDF文件预览思路。 目前Poppler现成编译的库仅支持32位版本Qt,对于普遍推广的64位系统并不友好。 #### 程序展示 点击预览PDF按钮后 > 图片靠左显示示例 ![1](README.assets/1-16383430473246.jpg) > 设置背景示例 ![2](README.assets/2-16383430765377.jpg) > 一张图剧中显示和2张图并列和剧中显示示例 ![3](README.assets/3-16383430829868.jpg) > 缩小后 ![4](README.assets/4.jpg) > 放大后 ![5](README.assets/5.jpg) #### 程序说明 程序使用了Qt自带的模块,实现了PDF文件的预览功能,未采用外部的第三方库,如Poppler,mupdf,PDfium等库 ##### 主要使用的Qt类 - `QPrinter`:实现打印预览设置,若页面控制等 - `QPainter`:实现pdf内容绘制 - `QPrintPreviewWidget`:实现pdf预览控件,用于显示pdf内容 ##### 实现的功能 - PDF文件预览 - PDF文件预览时放大和缩小 - PDF文件内容绘制 - 文字排版相关 - 图片排版:单图片剧中和多图片剧中 - PDF文件背景设置 #### 后面待实现功能 - 保存PDF文件:将pdf文件保存到本地 - 实现PDF文件打印:使用打印机打印 - Ctrl+鼠标滚轮实现PDF文件缩放等 - 优化锯齿等