diff --git a/generators/poppler/generator_pdf.cpp b/generators/poppler/generator_pdf.cpp index f6cf699a8dbed61daf545ef94d68fd9a890a10f1..aa8909427f204a221fa55ad8aaa33670c19e7baf 100644 --- a/generators/poppler/generator_pdf.cpp +++ b/generators/poppler/generator_pdf.cpp @@ -307,7 +307,7 @@ OKULAR_EXPORT_PLUGIN(PDFGenerator, createAboutData()) PDFGenerator::PDFGenerator( QObject *parent, const QVariantList &args ) : Generator( parent, args ), pdfdoc( 0 ), ready( true ), pixmapRequest( 0 ), docInfoDirty( true ), docSynopsisDirty( true ), - docEmbeddedFilesDirty( true ), pdfOptionsPage( 0 ) + docEmbeddedFilesDirty( true ), nextFontPage( 0 ), pdfOptionsPage( 0 ) { setFeature( TextExtraction ); setFeature( FontInfo ); @@ -472,6 +472,7 @@ bool PDFGenerator::doCloseDocument() docEmbeddedFilesDirty = true; qDeleteAll(docEmbeddedFiles); docEmbeddedFiles.clear(); + nextFontPage = 0; return true; } @@ -675,10 +676,13 @@ static Okular::FontInfo::EmbedType embedTypeForPopplerFontInfo( const Poppler::F return ret; } -Okular::FontInfo::List PDFGenerator::fontsForPage( int /*page*/ ) +Okular::FontInfo::List PDFGenerator::fontsForPage( int page ) { Okular::FontInfo::List list; + if ( page != nextFontPage ) + return list; + QList fonts; userMutex()->lock(); pdfdoc->scanForFonts( 1, &fonts ); @@ -695,6 +699,8 @@ Okular::FontInfo::List PDFGenerator::fontsForPage( int /*page*/ ) list.append( of ); } + ++nextFontPage; + return list; } diff --git a/generators/poppler/generator_pdf.h b/generators/poppler/generator_pdf.h index 9ce65c85c1a8f53f437594e32be4e594bdd4f3b9..4171c117172cbbeb092ff6b0f45b44093efb206e 100644 --- a/generators/poppler/generator_pdf.h +++ b/generators/poppler/generator_pdf.h @@ -132,6 +132,7 @@ class PDFGenerator : public Okular::Generator, public Okular::ConfigInterface, p Okular::DocumentSynopsis docSyn; mutable bool docEmbeddedFilesDirty; mutable QList docEmbeddedFiles; + int nextFontPage; QVector rectsGenerated;