Spaces:
Running
Running
int main(int argc, char **argv) | |
{ | |
QCoreApplication a(argc, argv); // QApplication required! | |
if (!(argc == 2)) { | |
qWarning() << "usage: poppler-page-labels filename"; | |
exit(1); | |
} | |
Poppler::Document *doc = Poppler::Document::load(argv[1]); | |
if (!doc || doc->isLocked()) { | |
qWarning() << "doc not loaded"; | |
exit(1); | |
} | |
for (int i = 0; i < doc->numPages(); i++) { | |
int j = 0; | |
std::cout << "*** Label of Page " << i << std::endl; | |
std::cout << std::flush; | |
std::unique_ptr<Poppler::Page> page(doc->page(i)); | |
if (!page) { | |
continue; | |
} | |
const QByteArray utf8str = page->label().toUtf8(); | |
for (j = 0; j < utf8str.size(); j++) { | |
std::cout << utf8str[j]; | |
} | |
std::cout << std::endl; | |
std::unique_ptr<Poppler::Page> pageFromPageLabel(doc->page(page->label())); | |
const int indexFromPageLabel = pageFromPageLabel ? pageFromPageLabel->index() : -1; | |
if (indexFromPageLabel != i) { | |
std::cout << "WARNING: Page label didn't link back to the same page index " << indexFromPageLabel << " " << i << std::endl; | |
} | |
} | |
delete doc; | |
} | |