[poppler] setPaperColor() does not work
Tom Roberts
tjrob at muonsinc.com
Thu Aug 24 00:53:52 UTC 2017
I have a real use for changing the color of the paper, as my application does
copy-and-paste from multiple PDF files and it would indicate the source. But
setPaperColor() does not do anything. Attached is a simple program that
demonstrates this (change filename to point to a valid .pdf file on your system).
Is there any way to fix this?
FYI This is Mac OS X El Capitan, with Qt 5.9.1 installed via HomeBrew, and
poppler-0.57.0.
Tom Roberts
-------------- next part --------------
#include <iostream>
#include <QString>
#include <QApplication>
#include <QImage>
#include <QPixmap>
#include <QLabel>
#include <QColor>
#include "poppler-qt5.h"
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
QString filename = "../Test.pdf";
Poppler::Document* document = Poppler::Document::load(filename);
if (!document || document->isLocked()) {
std::cerr << "Error in load()\n";
delete document;
return -1;
}
document->setPaperColor(QColor(255,0,0));
// Access page of the PDF file
int pageNumber = 0;
Poppler::Page* pdfPage = document->page(pageNumber);
if (pdfPage == 0) {
std::cerr << "Error in page()\n";
delete document;
return -1;
}
// Generate a QImage of the rendered page
int xres=72, yres=72;
QImage image = pdfPage->renderToImage(xres, yres);
if (image.isNull()) {
std::cerr << "Error in renderToImage()\n";
delete pdfPage;
delete document;
return -1;
}
QLabel *label = new QLabel();
QPixmap p = QPixmap::fromImage(image);
label->setPixmap(p);
label->show();
delete pdfPage;
delete document;
return app.exec();
}
More information about the poppler
mailing list