本文整理汇总了C++中poppler::Page类的典型用法代码示例。如果您正苦于以下问题:C++ Page类的具体用法?C++ Page怎么用?C++ Page使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Page类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: run
void SearchDocumentJob::run()
{
Q_ASSERT(m_document);
for (int i = 0; i < m_document->numPages(); ++i) {
int ipage = (startPage + i) % m_document->numPages();
Poppler::Page *page = m_document->page(ipage);
double sLeft, sTop, sRight, sBottom;
float scaleW = 1.f / page->pageSizeF().width();
float scaleH = 1.f / page->pageSizeF().height();
bool found;
found = page->search(m_search, sLeft, sTop, sRight, sBottom,
Poppler::Page::FromTop,
Poppler::Page::IgnoreCase);
while (found) {
QRectF result;
result.setLeft(sLeft * scaleW);
result.setTop(sTop * scaleH);
result.setRight(sRight * scaleW);
result.setBottom(sBottom * scaleH);
m_matches.append(QPair<int, QRectF>(ipage, result));
found = page->search(m_search, sLeft, sTop, sRight, sBottom,
Poppler::Page::NextResult,
Poppler::Page::IgnoreCase);
}
delete page;
}
}
开发者ID:rainemak,项目名称:sailfish-office,代码行数:30,代码来源:pdfjob.cpp
示例2: QVERIFY
void TestLinks::checkDests_xr01()
{
Poppler::Document *doc;
doc = Poppler::Document::load(TESTDATADIR "/unittestcases/xr01.pdf");
QVERIFY( doc );
Poppler::Page *page = doc->page(0);
QVERIFY( page );
QList< Poppler::Link* > links = page->links();
QCOMPARE( links.count(), 2 );
{
QCOMPARE( links.at(0)->linkType(), Poppler::Link::Goto );
Poppler::LinkGoto *link = static_cast< Poppler::LinkGoto * >( links.at(0) );
const Poppler::LinkDestination dest = link->destination();
QVERIFY( !isDestinationValid_pageNumber( &dest, doc ) );
QVERIFY( isDestinationValid_name( &dest ) );
QCOMPARE( dest.destinationName(), QString::fromLatin1("section.1") );
}
{
QCOMPARE( links.at(1)->linkType(), Poppler::Link::Goto );
Poppler::LinkGoto *link = static_cast< Poppler::LinkGoto * >( links.at(1) );
const Poppler::LinkDestination dest = link->destination();
QVERIFY( !isDestinationValid_pageNumber( &dest, doc ) );
QVERIFY( isDestinationValid_name( &dest ) );
QCOMPARE( dest.destinationName(), QString::fromLatin1("section.2") );
}
delete doc;
}
开发者ID:BlueBrain,项目名称:Poppler,代码行数:32,代码来源:check_links.cpp
示例3: run
void RenderThread::run()
{
double factor = qBound(0.01, m_zoomFactor, 10.0);
if (!QFile::exists(m_pdfUrl)) return;
Poppler::Document* document = Poppler::Document::load(m_pdfUrl);
if (!document || document->isLocked()) {
delete document;
return;
}
// Access page of the PDF file
document->setRenderHint(Poppler::Document::Antialiasing, true);
document->setRenderHint(Poppler::Document::TextAntialiasing, true);
Poppler::Page* pdfPage = document->page(0); // Document starts at page 0
if (pdfPage == 0) {
return;
}
// Generate a QImage of the rendered page
QImage image = pdfPage->renderToImage(factor*200.0, factor*200.0);
emit previewReady(image);
delete pdfPage;
delete document;
}
开发者ID:KDE,项目名称:cirkuit,代码行数:27,代码来源:renderthread.cpp
示例4: rect
WINPrint::~WINPrint() {
if (!doit) return;
Poppler::Document* document = Poppler::Document::load(file);
if (document) {
document->setRenderHint(Poppler::Document::Antialiasing);
document->setRenderHint(Poppler::Document::TextAntialiasing);
int nbpages=document->numPages(), nextpage=nbpages-1;
QPainter Paint;
if(Paint.begin(Prt)) {
QImage image;
QRect rect (0, 0,
Prt->paperRect (QPrinter::DevicePixel).width(),
Prt->paperRect(QPrinter::DevicePixel).height());
double rres= Prt->resolution();
Paint.setRenderHint (QPainter::Antialiasing);
for (int pg=0;pg < nbpages;pg++) {
Poppler::Page* pdfPage = document->page (pg);
if (pdfPage) {
image= pdfPage->renderToImage (rres, rres);
delete pdfPage;
}
if (!image.isNull()) {
Paint.drawImage (rect, image);
if (pg != nextpage) Prt->newPage();
}
else convert_error << "Fail to create image at "
<< rres << " dpi resolution\n";
}
Paint.end();
}
delete (document);
}
}
开发者ID:xywei,项目名称:texmacs,代码行数:34,代码来源:WINPrint.cpp
示例5: extractIsbnsFromPdf
void guFolderInspector::extractIsbnsFromPdf(QString fileName, QList<QString> &ISBNList)
{
//PDFDoc *doc;
//doc = new PDFDoc()
//qDebug() << "file:" << fileName;
Poppler::Document* document;
document = Poppler::Document::load(fileName,0,0);
//Poppler::Document::
if (!document || document->isLocked()) {
// ... error message ....
delete document;
return;
}
// Paranoid safety check
if (!document) {
// ... error message ...
return;
}
Poppler::Page* pdfPage;
isbnMethods find;
// Access page of the PDF file
int numOfPages = document->numPages(); //количество страниц
int numOfSearchPages = 15;
//qDebug() << "num of pages " << numOfPages;
if(numOfPages < numOfSearchPages)
{
numOfSearchPages = numOfPages;
}
for ( int pageNumber = 0 ; pageNumber < numOfSearchPages ; pageNumber++)
{
pdfPage = document->page(pageNumber); // Document starts at page 0
if (!pdfPage) {
// ... error message ...
continue;
}
//QtMsgHandler qInstallMsgHandler ( QtMsgHandler handler )
QString pageContent;
pageContent = pdfPage->text(QRectF(QPointF(0,0),pdfPage->pageSizeF()));
find.findIsbns(pageContent, ISBNList);
// ... use image ...
//qDebug() << pageContent;
}
// after the usage, the page must be deleted
delete pdfPage;
//Finally, don't forget to destroy the document:
delete document;
}
开发者ID:lgsoft-developers,项目名称:lguploader,代码行数:58,代码来源:guFolderInspector.cpp
示例6: fillTestSlideSize
void Renderer::fillTestSlideSize(int slideNumber) {
if (!this->loadedTestSlides->at(slideNumber)) {
Poppler::Page * testPage = this->document->page(slideNumber);
Slide *testSlide = new Slide(testPage->renderToImage(TEST_DPI, TEST_DPI), QRect());
this->testSlides->replace(slideNumber,testSlide);
this->loadedTestSlides->replace(slideNumber,true);
delete testPage;
}
}
开发者ID:miguelgraz,项目名称:open-pdf-presenter,代码行数:9,代码来源:renderer.cpp
示例7: main
int main( int argc, char **argv )
{
QApplication a( argc, argv ); // QApplication required!
QTime t;
t.start();
QDir directory( argv[1] );
foreach ( const QString &fileName, directory.entryList() ) {
if (fileName.endsWith("pdf") ) {
qDebug() << "Doing" << fileName.toLatin1().data() << ":";
Poppler::Document *doc = Poppler::Document::load( directory.canonicalPath()+"/"+fileName );
if (!doc) {
qWarning() << "doc not loaded";
} else if ( doc->isLocked() ) {
if (! doc->unlock( "", "password" ) ) {
qWarning() << "couldn't unlock document";
delete doc;
}
} else {
doc->pdfVersion();
doc->info("Title");
doc->info("Subject");
doc->info("Author");
doc->info("Keywords");
doc->info("Creator");
doc->info("Producer");
doc->date("CreationDate").toString();
doc->date("ModDate").toString();
doc->numPages();
doc->isLinearized();
doc->isEncrypted();
doc->okToPrint();
doc->okToCopy();
doc->okToChange();
doc->okToAddNotes();
doc->pageMode();
for( int index = 0; index < doc->numPages(); ++index ) {
Poppler::Page *page = doc->page( index );
QImage image = page->renderToImage();
page->pageSize();
page->orientation();
delete page;
std::cout << ".";
std::cout.flush();
}
std::cout << std::endl;
delete doc;
}
}
}
std::cout << "Elapsed time: " << (t.elapsed()/1000) << "seconds" << std::endl;
}
开发者ID:andropenoffie,项目名称:xpdfimport4android,代码行数:56,代码来源:stress-poppler-dir.cpp
示例8: updateBoard
void pdfBoard::updateBoard() {
Poppler::Page *pg = pdf->page( currentPage );
if ( pg == 0 ) return;
QImage image = pg->renderToImage( 72*zoom, 72*zoom, x, y, 600, 800 );
if ( image.isNull() ) return;
setMinimumSize(600, 800);
setMaximumSize(600, 800);
setPixmap( QPixmap::fromImage( image ) );
show();
delete pg;
}
开发者ID:jonathanverner,项目名称:comment,代码行数:11,代码来源:testPoppler.cpp
示例9: checkSeascapeOrientation
void TestMetaData::checkSeascapeOrientation()
{
Poppler::Document *doc;
doc = Poppler::Document::load("../../../test/unittestcases/orientation.pdf");
QVERIFY( doc );
Poppler::Page *page = doc->page(3);
QCOMPARE( page->orientation(), Poppler::Page::Seascape );
delete page;
delete doc;
}
开发者ID:wzhsunn,项目名称:SumatraPDF_0.6_Source,代码行数:12,代码来源:check_metadata.cpp
示例10: Slide
Slide *Renderer::renderSlide(int slideNumber, QRect geometry) {
this->fillTestSlideSize(slideNumber);
Slide *testSlide = this->testSlides->at(slideNumber);
QPoint scaleFactor = testSlide->computeScaleFactor(geometry, TEST_DPI);
Poppler::Page * pdfPage = this->document->page(slideNumber);
QImage image = pdfPage->renderToImage(scaleFactor.x(),scaleFactor.y());
delete pdfPage;
return new Slide(image, geometry);
}
开发者ID:miguelgraz,项目名称:open-pdf-presenter,代码行数:12,代码来源:renderer.cpp
示例11: checkPageSize
void TestMetaData::checkPageSize()
{
Poppler::Document *doc;
doc = Poppler::Document::load("../../../test/unittestcases/truetype.pdf");
QVERIFY( doc );
Poppler::Page *page = doc->page(0);
QCOMPARE( page->pageSize(), QSize(595, 842) );
QCOMPARE( page->pageSizeF(), QSizeF(595.22, 842) );
delete page;
delete doc;
}
开发者ID:wzhsunn,项目名称:SumatraPDF_0.6_Source,代码行数:13,代码来源:check_metadata.cpp
示例12: main
int main( int argc, char **argv )
{
QApplication a( argc, argv ); // QApplication required!
if ( argc != 3)
{
qWarning() << "usage: test-password-qt4 owner-password filename";
exit(1);
}
Poppler::Document *doc = Poppler::Document::load(argv[2], argv[1]);
if (!doc)
{
qWarning() << "doc not loaded";
exit(1);
}
// output some meta-data
int major = 0, minor = 0;
doc->getPdfVersion( &major, &minor );
qDebug() << " PDF Version: " << qPrintable(QString::fromLatin1("%1.%2").arg(major).arg(minor));
qDebug() << " Title: " << doc->info("Title");
qDebug() << " Subject: " << doc->info("Subject");
qDebug() << " Author: " << doc->info("Author");
qDebug() << " Key words: " << doc->info("Keywords");
qDebug() << " Creator: " << doc->info("Creator");
qDebug() << " Producer: " << doc->info("Producer");
qDebug() << " Date created: " << doc->date("CreationDate").toString();
qDebug() << " Date modified: " << doc->date("ModDate").toString();
qDebug() << "Number of pages: " << doc->numPages();
qDebug() << " Linearised: " << doc->isLinearized();
qDebug() << " Encrypted: " << doc->isEncrypted();
qDebug() << " OK to print: " << doc->okToPrint();
qDebug() << " OK to copy: " << doc->okToCopy();
qDebug() << " OK to change: " << doc->okToChange();
qDebug() << "OK to add notes: " << doc->okToAddNotes();
qDebug() << " Page mode: " << doc->pageMode();
QStringList fontNameList;
foreach( const Poppler::FontInfo &font, doc->fonts() )
fontNameList += font.name();
qDebug() << " Fonts: " << fontNameList.join( ", " );
Poppler::Page *page = doc->page(0);
qDebug() << " Page 1 size: " << page->pageSize().width()/72 << "inches x " << page->pageSize().height()/72 << "inches";
PDFDisplay test( doc ); // create picture display
test.setWindowTitle("Poppler-Qt4 Test");
test.show(); // show it
return a.exec(); // start event loop
}
开发者ID:,项目名称:,代码行数:51,代码来源:
示例13: display
void PDFDisplay::display()
{
if (doc) {
Poppler::Page *page = doc->getPage(currentPage);
if (page) {
delete pixmap;
page->renderToPixmap(&pixmap, -1, -1, -1, -1);
delete page;
update();
}
} else {
printf("doc not loaded\n");
}
}
开发者ID:,项目名称:,代码行数:14,代码来源:
示例14: QVERIFY
void TestActualText::checkActualText1()
{
Poppler::Document *doc;
doc = Poppler::Document::load("../../../test/unittestcases/WithActualText.pdf");
QVERIFY( doc );
Poppler::Page *page = doc->page(0);
QVERIFY( page );
QCOMPARE( page->text(QRectF()), QString("The slow brown fox jumps over the black dog.") );
delete page;
delete doc;
}
开发者ID:13609594236,项目名称:CrossApp,代码行数:15,代码来源:check_actualtext.cpp
示例15: generateImage
/* === private method implementation ========= */
QImage PdfImageGenerator::generateImage(const int &pno) {
Poppler::Page* pdfPage = this->pdfDocument->page(pno);
QImage image;
if (pdfPage) {
if (!pageSize.isValid()) {
image = pdfPage->renderToImage(dpiX * scaleFactor, dpiY * scaleFactor);
} else {
image = pdfPage->renderToImage(dpiX * scaleFactor, dpiY * scaleFactor, -1, -1, pageSize.width(), pageSize.height());
}
delete pdfPage;
}
return image;
}
开发者ID:flxw,项目名称:folienizer,代码行数:17,代码来源:pdfimagegenerator.cpp
示例16: updateMaxCanvasSize
void KisPDFImportWidget::updateMaxCanvasSize()
{
m_maxWidthInch = 0., m_maxHeightInch = 0.;
for (QList<int>::const_iterator it = m_pages.constBegin(); it != m_pages.constEnd(); ++it) {
Poppler::Page *p = m_pdfDoc->page(*it);
QSizeF size = p->pageSizeF();
if (size.width() > m_maxWidthInch) {
m_maxWidthInch = size.width();
}
if (size.height() > m_maxHeightInch) {
m_maxHeightInch = size.height();
}
}
m_maxWidthInch /= 72.;
m_maxHeightInch /= 72.;
dbgFile << m_maxWidthInch << "" << m_maxHeightInch;
updateResolution();
}
开发者ID:ChrisJong,项目名称:krita,代码行数:18,代码来源:kis_pdf_import_widget.cpp
示例17: page
QImage Pdf::page(int i)
{
QImage image;
// Paranoid safety check
if (_document == 0) {
return image;
}
Poppler::Page* pdfPage = _document->page(i); // Document starts at page 0
if (pdfPage == 0) {
return image;
}
QSize size = pdfPage->pageSize();
float scale = 2.0;
// the size can be decided more intelligently
image = pdfPage->renderToImage(scale*72.0, scale*72.0, 0, 0, scale*size.width(), scale*size.height());
delete pdfPage;
return binarization(image);
}
开发者ID:IsaacWeiss,项目名称:MuseScore,代码行数:20,代码来源:pdf.cpp
示例18: main
int main(int argc, char **argv)
{
if (argc != 2) {
std::cout << "Usage: " << argv[0] << " PDF" << std::endl;
return 1;
}
QString filename(argv[1]);
Poppler::Document* document = Poppler::Document::load(filename);
document->setRenderHint(Poppler::Document::TextHinting, true);
document->setRenderHint(Poppler::Document::TextSlightHinting, true);
Poppler::Page* pdfPage = document->page(0);
// dpi must be high enough
QImage image = pdfPage->renderToImage(200, 200);
return 0;
}
开发者ID:hpdeifel,项目名称:infinality_crash_reproduce,代码行数:20,代码来源:test.cpp
示例19: display
void PDFDisplay::display()
{
if (doc) {
Poppler::Page *page = doc->page(m_currentPage);
if (page) {
qDebug() << "Displaying page using" << backendString << "backend: " << m_currentPage;
image = page->renderToImage();
qDeleteAll(textRects);
if (showTextRects)
{
QPainter painter(&image);
painter.setPen(Qt::red);
textRects = page->textList();
foreach(Poppler::TextBox *tb, textRects)
{
painter.drawRect(tb->boundingBox());
}
}
else textRects.clear();
update();
delete page;
}
开发者ID:andropenoffie,项目名称:xpdfimport4android,代码行数:22,代码来源:test-poppler-qt4.cpp
示例20: main
int main( int argc, char **argv )
{
QApplication a( argc, argv ); // QApplication required!
if ( argc < 2 ||
(argc == 3 && strcmp(argv[2], "-arthur") != 0) ||
argc > 3)
{
// use argument as file name
qWarning() << "usage: test-poppler-qt4 filename [-arthur]";
exit(1);
}
Poppler::Document *doc = Poppler::Document::load(QFile::decodeName(argv[1]));
if (!doc)
{
qWarning() << "doc not loaded";
exit(1);
}
if (doc->isLocked())
{
qWarning() << "document locked (needs password)";
exit(0);
}
if (doc->numPages() <= 0)
{
delete doc;
qDebug() << "Doc has no pages";
return 0;
}
QString backendString;
if (argc == 3 && strcmp(argv[2], "-arthur") == 0)
{
backendString = "Arthur";
doc->setRenderBackend(Poppler::Document::ArthurBackend);
}
else
{
backendString = "Splash";
doc->setRenderBackend(Poppler::Document::SplashBackend);
}
doc->setRenderHint(Poppler::Document::Antialiasing, true);
doc->setRenderHint(Poppler::Document::TextAntialiasing, true);
for (int i = 0; i < doc->numPages(); ++i)
{
Poppler::Page *page = doc->page(i);
if (page) {
qDebug() << "Rendering page using" << backendString << "backend: " << i;
QTime t = QTime::currentTime();
QImage image = page->renderToImage();
qDebug() << "Rendering took" << t.msecsTo(QTime::currentTime()) << "msecs";
image.save(QString("test-rennder-to-file%1.ppm").arg(i));
delete page;
}
}
return 0;
}
开发者ID:BlueBrain,项目名称:Poppler,代码行数:62,代码来源:test-render-to-file.cpp
注:本文中的poppler::Page类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论