Spaces:
Running
Running
int main(int argc, char **argv) | |
{ | |
QApplication a(argc, argv); // QApplication required! | |
Q_UNUSED(argc); | |
Q_UNUSED(argv); | |
QElapsedTimer t; | |
t.start(); | |
QDir dbDir(QStringLiteral("./pdfdb")); | |
if (!dbDir.exists()) { | |
qWarning() << "Database directory does not exist"; | |
} | |
QStringList excludeSubDirs; | |
excludeSubDirs << QStringLiteral("000048") << QStringLiteral("000607"); | |
const QStringList dirs = dbDir.entryList(QStringList() << QStringLiteral("0000*"), QDir::Dirs); | |
foreach (const QString &subdir, dirs) { | |
if (excludeSubDirs.contains(subdir)) { | |
// then skip it | |
} else { | |
QString path = "./pdfdb/" + subdir + "/data.pdf"; | |
std::cout << "Doing " << path.toLatin1().data() << " :"; | |
std::unique_ptr<Poppler::Document> doc = Poppler::Document::load(path); | |
if (!doc) { | |
qWarning() << "doc not loaded"; | |
} else { | |
auto pdfVersion = doc->getPdfVersion(); | |
Q_UNUSED(pdfVersion); | |
doc->info(QStringLiteral("Title")); | |
doc->info(QStringLiteral("Subject")); | |
doc->info(QStringLiteral("Author")); | |
doc->info(QStringLiteral("Keywords")); | |
doc->info(QStringLiteral("Creator")); | |
doc->info(QStringLiteral("Producer")); | |
doc->date(QStringLiteral("CreationDate")).toString(); | |
doc->date(QStringLiteral("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) { | |
std::unique_ptr<Poppler::Page> page = doc->page(index); | |
page->renderToImage(); | |
page->pageSize(); | |
page->orientation(); | |
std::cout << "."; | |
std::cout.flush(); | |
} | |
std::cout << std::endl; | |
} | |
} | |
} | |
std::cout << "Elapsed time: " << (t.elapsed() / 1000) << std::endl; | |
} | |