look for Poppler::PSConverter::setOutputDevice(), and use it if found

svn path=/trunk/KDE/kdegraphics/okular/; revision=709853
remotes/origin/KDE/4.0
Pino Toscano 19 years ago
parent 8e6d1619f3
commit c141af6017
  1. 15
      generators/poppler/CMakeLists.txt
  2. 3
      generators/poppler/config-okular-poppler.h.cmake
  3. 6
      generators/poppler/generator_pdf.cpp

@ -1,4 +1,19 @@
# check for Poppler::PSConverter::setOutputDevice()
set(CMAKE_REQUIRED_INCLUDES ${POPPLER_INCLUDE_DIR} ${QT_INCLUDE_DIR})
set(CMAKE_REQUIRED_LIBRARIES ${POPPLER_LIBRARY} ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${QT_QTXML_LIBRARY})
check_cxx_source_compiles("
#include <poppler-qt4.h>
int main()
{
Poppler::Document * doc = Poppler::Document::load(\"foo\");
Poppler::PSConverter * psconv = doc->psConverter();
psconv->setOutputDevice( 0 );
return 0;
}
" POPPLER_HAVE_PSCONVERTER_SETOUTPUTDEVICE)
macro_bool_to_01(POPPLER_HAVE_PSCONVERTER_SETOUTPUTDEVICE _POPPLER_HAVE_PSCONVERTER_SETOUTPUTDEVICE)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/config-okular-poppler.h.cmake

@ -1,2 +1,5 @@
/* Defined if we have the 0.6 version of the Poppler library */
#cmakedefine HAVE_POPPLER_0_6 1
/* Defined if Poppler::PSConverter has setOutputDevice */
#define POPPLER_HAVE_PSCONVERTER_SETOUTPUTDEVICE ${_POPPLER_HAVE_PSCONVERTER_SETOUTPUTDEVICE}

@ -875,7 +875,9 @@ bool PDFGenerator::print( KPrinter& printer )
if ( !tf.open() )
return false;
QString tempfilename = tf.fileName();
#if !POPPLER_HAVE_PSCONVERTER_SETOUTPUTDEVICE
tf.close();
#endif
QList<int> pageList;
if (!printer.previewOnly()) pageList = printer.pageList();
@ -903,7 +905,11 @@ bool PDFGenerator::print( KPrinter& printer )
}
bool forceRasterize = printer.option("kde-okular-poppler-forceRaster").toInt();
Poppler::PSConverter *psConverter = pdfdoc->psConverter();
#if POPPLER_HAVE_PSCONVERTER_SETOUTPUTDEVICE
psConverter->setOutputDevice(&tf);
#else
psConverter->setOutputFileName(tempfilename);
#endif
psConverter->setPageList(pageList);
psConverter->setPaperWidth(width);
psConverter->setPaperHeight(height);

Loading…
Cancel
Save