summaryrefslogtreecommitdiff
path: root/qt4/tests/poppler-fonts.cpp
blob: 460987af090c3deed33fcdb40185fa675dc75845 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <QtCore/QtCore>
#include <iostream>

#define UNSTABLE_POPPLER_QT4
#include <poppler-qt4.h>

int main( int argc, char **argv )
{
    QCoreApplication a( argc, argv );               // QApplication required!

    if (!( argc == 2 ))
    {
	qWarning() << "usage: poppler-fonts filename";
	exit(1);
    }
  
    Poppler::Document *doc = Poppler::Document::load(argv[1]);
    if (!doc)
    {
	qWarning() << "doc not loaded";
	exit(1);
    }

    std::cout << "name                                 type         emb sub font file";
    std::cout << std::endl;
    std::cout << "------------------------------------ ------------ --- --- ---------";
    std::cout << std::endl;
  
    foreach( Poppler::FontInfo font, doc->fonts() ) {
	if (font.name().isNull()) {
	    std::cout << qPrintable( QString("%1").arg(QString("[none]"), -37) );
	} else {
	    std::cout << qPrintable( QString("%1").arg(font.name(), -37) );
	}
	switch( font.type() ) {
	case Poppler::FontInfo::unknown:
	    std::cout << "unknown      ";
	    break;
	case Poppler::FontInfo::Type1:
	    std::cout << "Type 1       ";
	    break;
	case Poppler::FontInfo::Type1C:
	    std::cout << "Type 1C      ";
	    break;
	case Poppler::FontInfo::Type3:
	    std::cout << "Type 3       ";
	    break;
	case Poppler::FontInfo::TrueType:
	    std::cout << "TrueType     ";
	    break;
	case Poppler::FontInfo::CIDType0:
	    std::cout << "CID Type 0   ";
	    break;
	case Poppler::FontInfo::CIDType0C:
	    std::cout << "CID Type 0C  ";
	    break;
	case Poppler::FontInfo::CIDTrueType:
	    std::cout << "CID TrueType ";
	    break;
	}

	if ( font.isEmbedded() ) {
	    std::cout << "yes ";
	} else {
	    std::cout << "no  ";
	}
	if ( font.isSubset() ) {
	    std::cout << "yes ";
	} else {
	    std::cout << "no  ";
	}
	std::cout << qPrintable( QString("%1").arg(font.file()) );
	std::cout << std::endl;
    }
    delete doc;
}