⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pdfviewer.cpp

📁 用QT设计的手持设备PDF阅读器。实现了阅读
💻 CPP
字号:
#include "pdfviewer.h"Pdfviewer::Pdfviewer( QWidget * parent, Qt::WindowFlags f)	: QLabel(parent, f){		setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);	setScaledContents(true);	m_document = NULL;	m_currentPage = 0;}Pdfviewer::~Pdfviewer(){	if(m_document)		delete m_document;}bool Pdfviewer::OpenDocument(QString filename){	if(m_document)		delete m_document;	m_document = Poppler::Document::load(filename);	if (!m_document || m_document->isLocked()) {		// ... error message ....		qDebug()<<"Cannot open file"<<filename;		if(m_document){			delete m_document;			m_document = NULL;		}		return false;	}	m_currentPage = 0;	// Paranoid safety check	if(!m_document)		return false;	// Access page of the PDF file	pdfPage = m_document->page(m_currentPage);  // Document starts at page 0	if (!pdfPage) {		return false;	}		// Generate a QImage of the rendered page	image = pdfPage->renderToImage();	if (image.isNull()) {		qDebug()<<"pdf file renderToImage error";		return false;	}		resize(pdfPage->pageSize());	showpage(0);	return true;}void Pdfviewer::showpage(int npage){	// Paranoid safety check	if (m_document == NULL)		return;		// Access page of the PDF file	pdfPage = m_document->page(npage);  // Document starts at page 0	if (!pdfPage) {		return;	}		// Generate a QImage of the rendered page	image = pdfPage->renderToImage();	if (image.isNull()) {		qDebug()<<"pdf file renderToImage error";		return;	}		if(m_currentPage != npage){		m_currentPage = npage;		update();	}}int Pdfviewer::allPageNum(){	return m_document->numPages();	}void Pdfviewer::paintEvent(QPaintEvent *){	QPainter painter(this);	if (image.isNull()) {		qDebug()<<"No image";		return;	}	else		pixmap1 = QPixmap::fromImage(image);	// ... use image ...	painter.drawPixmap(0,0,pixmap1);	// after the usage, the page must be deleted	//delete pdfPage;}void Mainframe::scaleImage(double factor_x,double factor_y){		// Generate a QImage of the rendered page	image = pdfPage->renderToImage(factor_x,factor_y);	if (image.isNull()) {		qDebug()<<"pdf file renderToImage error";		return;	}	adjustScrollBar(scrollArea->horizontalScrollBar(), factor);    adjustScrollBar(scrollArea->verticalScrollBar(), factor);	actionBig->setEnabled(scaleFactor < 3.0);    actionSmall->setEnabled(scaleFactor > 0.333);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -