Add support for Poppler >= 0.60

Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
pull/1/head
Slávek Banko 6 years ago
parent e199b0f778
commit 9dd187337a

@ -1,6 +1,7 @@
#cmakedefine VERSION "@VERSION@"
// poppler-tqt
#cmakedefine HAVE_POPPLER_060
#cmakedefine HAVE_POPPLER_030
#cmakedefine HAVE_POPPLER_020
#cmakedefine HAVE_POPPLER_016

@ -24,3 +24,13 @@ check_cxx_source_compiles("
HAVE_POPPLER_030 )
tde_restore( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )
if( NOT DEFINED HAVE_POPPLER_060 )
message( STATUS "Performing Test HAVE_POPPLER_060" )
if( POPPLER_VERSION VERSION_GREATER_EQUAL "0.60" )
set( HAVE_POPPLER_060 1 CACHE INTERNAL "" FORCE )
message( STATUS "Performing Test HAVE_POPPLER_060 - Success" )
else( )
set( HAVE_POPPLER_060 "" CACHE INTERNAL "" FORCE )
message( STATUS "Performing Test HAVE_POPPLER_060 - Failed" )
endif( )
endif( )

@ -153,7 +153,11 @@ TQString Document::getInfo( const TQString & type ) const
if ( data->locked )
return NULL;
# if defined(HAVE_POPPLER_060)
info = data->doc.getDocInfo();
# else
data->doc.getDocInfo( &info );
# endif
if ( !info.isDict() )
return NULL;
@ -165,7 +169,13 @@ TQString Document::getInfo( const TQString & type ) const
int i;
Dict *infoDict = info.getDict();
if ( infoDict->lookup( (char*)type.latin1(), &obj )->isString() )
if (
# if defined(HAVE_POPPLER_060)
infoDict->lookup( (char*)type.latin1() ).isString()
# else
infoDict->lookup( (char*)type.latin1(), &obj )->isString()
# endif
)
{
s1 = obj.getString();
if ( ( s1->getChar(0) & 0xff ) == 0xfe && ( s1->getChar(1) & 0xff ) == 0xff )
@ -192,12 +202,16 @@ TQString Document::getInfo( const TQString & type ) const
}
result += unicodeToTQString( &u, 1 );
}
# if !defined(HAVE_POPPLER_060)
obj.free();
info.free();
# endif
return result;
}
# if !defined(HAVE_POPPLER_060)
obj.free();
info.free();
# endif
return NULL;
}
@ -209,9 +223,15 @@ TQDateTime Document::getDate( const TQString & type ) const
return TQDateTime();
Object info;
# if defined(HAVE_POPPLER_060)
info = data->doc.getDocInfo();
# else
data->doc.getDocInfo( &info );
# endif
if ( !info.isDict() ) {
# if !defined(HAVE_POPPLER_060)
info.free();
# endif
return TQDateTime();
}
@ -221,7 +241,13 @@ TQDateTime Document::getDate( const TQString & type ) const
Dict *infoDict = info.getDict();
TQString result;
if ( infoDict->lookup( (char*)type.latin1(), &obj )->isString() )
if (
# if defined(HAVE_POPPLER_060)
infoDict->lookup( (char*)type.latin1() ).isString()
# else
infoDict->lookup( (char*)type.latin1(), &obj )->isString()
# endif
)
{
TQString s = UnicodeParsedString(obj.getString());
// TODO do something with the timezone information
@ -230,14 +256,18 @@ TQDateTime Document::getDate( const TQString & type ) const
TQDate d( year, mon, day ); //CHECK: it was mon-1, Jan->0 (??)
TQTime t( hour, min, sec );
if ( d.isValid() && t.isValid() ) {
# if !defined(HAVE_POPPLER_060)
obj.free();
info.free();
# endif
return TQDateTime( d, t );
}
}
}
# if !defined(HAVE_POPPLER_060)
obj.free();
info.free();
# endif
return TQDateTime();
}
@ -317,7 +347,7 @@ bool Document::print(const TQString &fileName, TQValueList<int> pageList, double
bool Document::print(const TQString &file, TQValueList<int> pageList, double hDPI, double vDPI, int rotate, int paperWidth, int paperHeight)
{
#if defined(HAVE_POPPLER_030)
#if defined(HAVE_POPPLER_060) || defined(HAVE_POPPLER_030)
std::vector<int> pages;
TQValueList<int>::iterator it;
for (it = pageList.begin(); it != pageList.end(); ++it ) {

@ -129,7 +129,7 @@ TQString Page::getText(const Rectangle &r) const
TQString result;
::Page *p;
#if defined(HAVE_POPPLER_030) || defined(HAVE_POPPLER_020)
#if defined(HAVE_POPPLER_060) || defined(HAVE_POPPLER_030) || defined(HAVE_POPPLER_020)
output_dev = new TextOutputDev(0, gFalse, 0, gFalse, gFalse);
#else
output_dev = new TextOutputDev(0, gFalse, gFalse, gFalse);
@ -164,7 +164,7 @@ TQValueList<TextBox*> Page::textList() const
TQValueList<TextBox*> output_list;
#if defined(HAVE_POPPLER_030) || defined(HAVE_POPPLER_020)
#if defined(HAVE_POPPLER_060) || defined(HAVE_POPPLER_030) || defined(HAVE_POPPLER_020)
output_dev = new TextOutputDev(0, gFalse, 0, gFalse, gFalse);
#else
output_dev = new TextOutputDev(0, gFalse, gFalse, gFalse);
@ -205,9 +205,16 @@ PageTransition *Page::getTransition() const
{
Object o;
PageTransitionParams params;
params.dictObj = data->doc->data->doc.getCatalog()->getPage(data->index + 1)->getTrans(&o);
# if defined(HAVE_POPPLER_060)
o = data->doc->data->doc.getCatalog()->getPage(data->index + 1)->getTrans();
# else
data->doc->data->doc.getCatalog()->getPage(data->index + 1)->getTrans(&o);
# endif
params.dictObj = &o;
data->transition = new PageTransition(params);
# if !defined(HAVE_POPPLER_060)
o.free();
# endif
}
return data->transition;
}

Loading…
Cancel
Save