[poppler] qt5/demos qt5/src qt5/tests qt6/demos qt6/src qt6/tests

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Oct 20 08:36:16 UTC 2020


 qt5/demos/viewer.cpp               |    2 
 qt5/src/CMakeLists.txt             |    2 
 qt5/src/QPainterOutputDev.cc       |  102 ++++++++++++++++++-------------------
 qt5/src/QPainterOutputDev.h        |   26 ++++-----
 qt5/src/poppler-document.cc        |    7 +-
 qt5/src/poppler-page.cc            |   34 ++++++------
 qt5/src/poppler-qt5.h              |    7 +-
 qt5/tests/check_stroke_opacity.cpp |    2 
 qt5/tests/test-poppler-qt5.cpp     |   20 +++----
 qt5/tests/test-render-to-file.cpp  |   10 +--
 qt6/demos/viewer.cpp               |    2 
 qt6/src/CMakeLists.txt             |    2 
 qt6/src/QPainterOutputDev.cc       |  102 ++++++++++++++++++-------------------
 qt6/src/QPainterOutputDev.h        |   26 ++++-----
 qt6/src/poppler-document.cc        |    4 -
 qt6/src/poppler-page.cc            |   34 ++++++------
 qt6/src/poppler-qt6.h              |    6 +-
 qt6/tests/check_stroke_opacity.cpp |    2 
 qt6/tests/test-poppler-qt6.cpp     |   20 +++----
 qt6/tests/test-render-to-file.cpp  |   10 +--
 20 files changed, 211 insertions(+), 209 deletions(-)

New commits:
commit 99346560791c935f74d77405dd35bef0f5823d1b
Author: Oliver Sander <oliver.sander at tu-dresden.de>
Date:   Fri Oct 16 23:01:42 2020 +0200

    Rename ArthurOutputDev to QPainterOutputDev
    
    The Qt rendering system hasn't been called 'Arthur' for a long time,
    let's adapt the code to that.
    
    For backward compatibility, the ArthurBackend enum value remains
    in the files poppler-qt5.h and poppler-qt6.h.  These shouldn't be
    used anymore.

diff --git a/qt5/demos/viewer.cpp b/qt5/demos/viewer.cpp
index a7c18079..be7dad7a 100644
--- a/qt5/demos/viewer.cpp
+++ b/qt5/demos/viewer.cpp
@@ -79,7 +79,7 @@ PdfViewer::PdfViewer(QWidget *parent) : QMainWindow(parent), m_currentPage(0), m
     act->setChecked(true);
     act->setData(QVariant::fromValue(0));
     m_settingsRenderBackendGrp->addAction(act);
-    act = settingsRenderMenu->addAction(tr("Arthur"));
+    act = settingsRenderMenu->addAction(tr("QPainter"));
     act->setCheckable(true);
     act->setData(QVariant::fromValue(1));
     m_settingsRenderBackendGrp->addAction(act);
diff --git a/qt5/src/CMakeLists.txt b/qt5/src/CMakeLists.txt
index 0247fa3f..403458e5 100644
--- a/qt5/src/CMakeLists.txt
+++ b/qt5/src/CMakeLists.txt
@@ -36,7 +36,7 @@ set(poppler_qt5_SRCS
   poppler-page-transition.cc
   poppler-media.cc
   poppler-outline.cc
-  ArthurOutputDev.cc
+  QPainterOutputDev.cc
   poppler-version.cpp
 )
 add_library(poppler-qt5 ${poppler_qt5_SRCS})
diff --git a/qt5/src/ArthurOutputDev.cc b/qt5/src/QPainterOutputDev.cc
similarity index 90%
rename from qt5/src/ArthurOutputDev.cc
rename to qt5/src/QPainterOutputDev.cc
index a5a856b5..645b3cad 100644
--- a/qt5/src/ArthurOutputDev.cc
+++ b/qt5/src/QPainterOutputDev.cc
@@ -1,6 +1,6 @@
 //========================================================================
 //
-// ArthurOutputDev.cc
+// QPainterOutputDev.cc
 //
 // Copyright 2003 Glyph & Cog, LLC
 //
@@ -50,7 +50,7 @@
 #include "FontEncodingTables.h"
 #include <fofi/FoFiTrueType.h>
 #include <fofi/FoFiType1C.h>
-#include "ArthurOutputDev.h"
+#include "QPainterOutputDev.h"
 #include "Page.h"
 #include "Gfx.h"
 #include "PDFDoc.h"
@@ -61,10 +61,10 @@
 #include <QtGui/QPainterPath>
 #include <QPicture>
 
-class ArthurType3Font
+class QPainterOutputDevType3Font
 {
 public:
-    ArthurType3Font(PDFDoc *doc, Gfx8BitFont *font);
+    QPainterOutputDevType3Font(PDFDoc *doc, Gfx8BitFont *font);
 
     const QPicture &getGlyph(int gid) const;
 
@@ -78,7 +78,7 @@ public:
     std::vector<int> codeToGID;
 };
 
-ArthurType3Font::ArthurType3Font(PDFDoc *doc, Gfx8BitFont *font) : m_doc(doc), m_font(font)
+QPainterOutputDevType3Font::QPainterOutputDevType3Font(PDFDoc *doc, Gfx8BitFont *font) : m_doc(doc), m_font(font)
 {
     char *name;
     const Dict *charProcs = font->getCharProcs();
@@ -103,7 +103,7 @@ ArthurType3Font::ArthurType3Font(PDFDoc *doc, Gfx8BitFont *font) : m_doc(doc), m
     }
 }
 
-const QPicture &ArthurType3Font::getGlyph(int gid) const
+const QPicture &QPainterOutputDevType3Font::getGlyph(int gid) const
 {
     if (!glyphs[gid]) {
 
@@ -118,7 +118,7 @@ const QPicture &ArthurType3Font::getGlyph(int gid) const
         QPainter glyphPainter;
         glyphs[gid] = std::make_unique<QPicture>();
         glyphPainter.begin(glyphs[gid].get());
-        auto output_dev = std::make_unique<ArthurOutputDev>(&glyphPainter);
+        auto output_dev = std::make_unique<QPainterOutputDev>(&glyphPainter);
 
         auto gfx = std::make_unique<Gfx>(m_doc, output_dev.get(), resDict,
                                          &box, // pagebox
@@ -140,10 +140,10 @@ const QPicture &ArthurType3Font::getGlyph(int gid) const
 }
 
 //------------------------------------------------------------------------
-// ArthurOutputDev
+// QPainterOutputDev
 //------------------------------------------------------------------------
 
-ArthurOutputDev::ArthurOutputDev(QPainter *painter) : m_lastTransparencyGroupPicture(nullptr), m_hintingPreference(QFont::PreferDefaultHinting)
+QPainterOutputDev::QPainterOutputDev(QPainter *painter) : m_lastTransparencyGroupPicture(nullptr), m_hintingPreference(QFont::PreferDefaultHinting)
 {
     m_painter.push(painter);
     m_currentBrush = QBrush(Qt::SolidPattern);
@@ -159,7 +159,7 @@ ArthurOutputDev::ArthurOutputDev(QPainter *painter) : m_lastTransparencyGroupPic
     m_useCIDs = major > 2 || (major == 2 && (minor > 1 || (minor == 1 && patch > 7)));
 }
 
-ArthurOutputDev::~ArthurOutputDev()
+QPainterOutputDev::~QPainterOutputDev()
 {
     for (auto &codeToGID : m_codeToGIDCache) {
         gfree(const_cast<int *>(codeToGID.second));
@@ -168,7 +168,7 @@ ArthurOutputDev::~ArthurOutputDev()
     FT_Done_FreeType(m_ftLibrary);
 }
 
-void ArthurOutputDev::startDoc(PDFDoc *doc)
+void QPainterOutputDev::startDoc(PDFDoc *doc)
 {
     xref = doc->getXRef();
     m_doc = doc;
@@ -179,11 +179,11 @@ void ArthurOutputDev::startDoc(PDFDoc *doc)
     m_codeToGIDCache.clear();
 }
 
-void ArthurOutputDev::startPage(int pageNum, GfxState *state, XRef *) { }
+void QPainterOutputDev::startPage(int pageNum, GfxState *state, XRef *) { }
 
-void ArthurOutputDev::endPage() { }
+void QPainterOutputDev::endPage() { }
 
-void ArthurOutputDev::saveState(GfxState *state)
+void QPainterOutputDev::saveState(GfxState *state)
 {
     m_currentPenStack.push(m_currentPen);
     m_currentBrushStack.push(m_currentBrush);
@@ -194,7 +194,7 @@ void ArthurOutputDev::saveState(GfxState *state)
     m_painter.top()->save();
 }
 
-void ArthurOutputDev::restoreState(GfxState *state)
+void QPainterOutputDev::restoreState(GfxState *state)
 {
     m_painter.top()->restore();
 
@@ -210,21 +210,21 @@ void ArthurOutputDev::restoreState(GfxState *state)
     m_currentPenStack.pop();
 }
 
-void ArthurOutputDev::updateAll(GfxState *state)
+void QPainterOutputDev::updateAll(GfxState *state)
 {
     OutputDev::updateAll(state);
     m_needFontUpdate = true;
 }
 
 // Set CTM (Current Transformation Matrix) to a fixed matrix
-void ArthurOutputDev::setDefaultCTM(const double *ctm)
+void QPainterOutputDev::setDefaultCTM(const double *ctm)
 {
     m_painter.top()->setTransform(QTransform(ctm[0], ctm[1], ctm[2], ctm[3], ctm[4], ctm[5]));
 }
 
 // Update the CTM (Current Transformation Matrix), i.e., compose the old
 // CTM with a new matrix.
-void ArthurOutputDev::updateCTM(GfxState *state, double m11, double m12, double m21, double m22, double m31, double m32)
+void QPainterOutputDev::updateCTM(GfxState *state, double m11, double m12, double m21, double m22, double m31, double m32)
 {
     updateLineDash(state);
     updateLineJoin(state);
@@ -237,7 +237,7 @@ void ArthurOutputDev::updateCTM(GfxState *state, double m11, double m12, double
     m_painter.top()->setTransform(update, true);
 }
 
-void ArthurOutputDev::updateLineDash(GfxState *state)
+void QPainterOutputDev::updateLineDash(GfxState *state)
 {
     double *dashPattern;
     int dashLength;
@@ -272,12 +272,12 @@ void ArthurOutputDev::updateLineDash(GfxState *state)
     m_painter.top()->setPen(m_currentPen);
 }
 
-void ArthurOutputDev::updateFlatness(GfxState *state)
+void QPainterOutputDev::updateFlatness(GfxState *state)
 {
     // qDebug() << "updateFlatness";
 }
 
-void ArthurOutputDev::updateLineJoin(GfxState *state)
+void QPainterOutputDev::updateLineJoin(GfxState *state)
 {
     switch (state->getLineJoin()) {
     case 0:
@@ -296,7 +296,7 @@ void ArthurOutputDev::updateLineJoin(GfxState *state)
     m_painter.top()->setPen(m_currentPen);
 }
 
-void ArthurOutputDev::updateLineCap(GfxState *state)
+void QPainterOutputDev::updateLineCap(GfxState *state)
 {
     switch (state->getLineCap()) {
     case 0:
@@ -312,13 +312,13 @@ void ArthurOutputDev::updateLineCap(GfxState *state)
     m_painter.top()->setPen(m_currentPen);
 }
 
-void ArthurOutputDev::updateMiterLimit(GfxState *state)
+void QPainterOutputDev::updateMiterLimit(GfxState *state)
 {
     m_currentPen.setMiterLimit(state->getMiterLimit());
     m_painter.top()->setPen(m_currentPen);
 }
 
-void ArthurOutputDev::updateLineWidth(GfxState *state)
+void QPainterOutputDev::updateLineWidth(GfxState *state)
 {
     m_currentPen.setWidthF(state->getLineWidth());
     m_painter.top()->setPen(m_currentPen);
@@ -329,7 +329,7 @@ void ArthurOutputDev::updateLineWidth(GfxState *state)
     updateLineDash(state);
 }
 
-void ArthurOutputDev::updateFillColor(GfxState *state)
+void QPainterOutputDev::updateFillColor(GfxState *state)
 {
     GfxRGB rgb;
     QColor brushColour = m_currentBrush.color();
@@ -338,7 +338,7 @@ void ArthurOutputDev::updateFillColor(GfxState *state)
     m_currentBrush.setColor(brushColour);
 }
 
-void ArthurOutputDev::updateStrokeColor(GfxState *state)
+void QPainterOutputDev::updateStrokeColor(GfxState *state)
 {
     GfxRGB rgb;
     QColor penColour = m_currentPen.color();
@@ -348,7 +348,7 @@ void ArthurOutputDev::updateStrokeColor(GfxState *state)
     m_painter.top()->setPen(m_currentPen);
 }
 
-void ArthurOutputDev::updateBlendMode(GfxState *state)
+void QPainterOutputDev::updateBlendMode(GfxState *state)
 {
     GfxBlendMode blendMode = state->getBlendMode();
 
@@ -400,14 +400,14 @@ void ArthurOutputDev::updateBlendMode(GfxState *state)
     }
 }
 
-void ArthurOutputDev::updateFillOpacity(GfxState *state)
+void QPainterOutputDev::updateFillOpacity(GfxState *state)
 {
     QColor brushColour = m_currentBrush.color();
     brushColour.setAlphaF(state->getFillOpacity());
     m_currentBrush.setColor(brushColour);
 }
 
-void ArthurOutputDev::updateStrokeOpacity(GfxState *state)
+void QPainterOutputDev::updateStrokeOpacity(GfxState *state)
 {
     QColor penColour = m_currentPen.color();
     penColour.setAlphaF(state->getStrokeOpacity());
@@ -415,7 +415,7 @@ void ArthurOutputDev::updateStrokeOpacity(GfxState *state)
     m_painter.top()->setPen(m_currentPen);
 }
 
-void ArthurOutputDev::updateFont(GfxState *state)
+void QPainterOutputDev::updateFont(GfxState *state)
 {
     GfxFont *gfxFont = state->getFont();
     if (!gfxFont) {
@@ -423,7 +423,7 @@ void ArthurOutputDev::updateFont(GfxState *state)
     }
 
     // The key to look in the font caches
-    ArthurFontID fontID = { *gfxFont->getID(), state->getFontSize() };
+    QPainterFontID fontID = { *gfxFont->getID(), state->getFontSize() };
 
     // Current font is a type3 font
     if (gfxFont->getType() == fontType3) {
@@ -436,8 +436,8 @@ void ArthurOutputDev::updateFont(GfxState *state)
 
         } else {
 
-            m_currentType3Font = new ArthurType3Font(m_doc, (Gfx8BitFont *)gfxFont);
-            m_type3FontCache.insert(std::make_pair(fontID, std::unique_ptr<ArthurType3Font>(m_currentType3Font)));
+            m_currentType3Font = new QPainterOutputDevType3Font(m_doc, (Gfx8BitFont *)gfxFont);
+            m_type3FontCache.insert(std::make_pair(fontID, std::unique_ptr<QPainterOutputDevType3Font>(m_currentType3Font)));
         }
 
         return;
@@ -694,22 +694,22 @@ static QPainterPath convertPath(GfxState *state, const GfxPath *path, Qt::FillRu
     return qPath;
 }
 
-void ArthurOutputDev::stroke(GfxState *state)
+void QPainterOutputDev::stroke(GfxState *state)
 {
     m_painter.top()->strokePath(convertPath(state, state->getPath(), Qt::OddEvenFill), m_currentPen);
 }
 
-void ArthurOutputDev::fill(GfxState *state)
+void QPainterOutputDev::fill(GfxState *state)
 {
     m_painter.top()->fillPath(convertPath(state, state->getPath(), Qt::WindingFill), m_currentBrush);
 }
 
-void ArthurOutputDev::eoFill(GfxState *state)
+void QPainterOutputDev::eoFill(GfxState *state)
 {
     m_painter.top()->fillPath(convertPath(state, state->getPath(), Qt::OddEvenFill), m_currentBrush);
 }
 
-bool ArthurOutputDev::axialShadedFill(GfxState *state, GfxAxialShading *shading, double tMin, double tMax)
+bool QPainterOutputDev::axialShadedFill(GfxState *state, GfxAxialShading *shading, double tMin, double tMax)
 {
     double x0, y0, x1, y1;
     shading->getCoords(&x0, &y0, &x1, &y1);
@@ -835,17 +835,17 @@ bool ArthurOutputDev::axialShadedFill(GfxState *state, GfxAxialShading *shading,
     return true;
 }
 
-void ArthurOutputDev::clip(GfxState *state)
+void QPainterOutputDev::clip(GfxState *state)
 {
     m_painter.top()->setClipPath(convertPath(state, state->getPath(), Qt::WindingFill), Qt::IntersectClip);
 }
 
-void ArthurOutputDev::eoClip(GfxState *state)
+void QPainterOutputDev::eoClip(GfxState *state)
 {
     m_painter.top()->setClipPath(convertPath(state, state->getPath(), Qt::OddEvenFill), Qt::IntersectClip);
 }
 
-void ArthurOutputDev::clipToStrokePath(GfxState *state)
+void QPainterOutputDev::clipToStrokePath(GfxState *state)
 {
     QPainterPath clipPath = convertPath(state, state->getPath(), Qt::WindingFill);
 
@@ -863,7 +863,7 @@ void ArthurOutputDev::clipToStrokePath(GfxState *state)
     m_painter.top()->setClipPath(clipPathOutline, Qt::IntersectClip);
 }
 
-void ArthurOutputDev::drawChar(GfxState *state, double x, double y, double dx, double dy, double originX, double originY, CharCode code, int nBytes, const Unicode *u, int uLen)
+void QPainterOutputDev::drawChar(GfxState *state, double x, double y, double dx, double dy, double originX, double originY, CharCode code, int nBytes, const Unicode *u, int uLen)
 {
 
     // First handle type3 fonts
@@ -969,13 +969,13 @@ void ArthurOutputDev::drawChar(GfxState *state, double x, double y, double dx, d
     }
 }
 
-void ArthurOutputDev::type3D0(GfxState *state, double wx, double wy) { }
+void QPainterOutputDev::type3D0(GfxState *state, double wx, double wy) { }
 
-void ArthurOutputDev::type3D1(GfxState *state, double wx, double wy, double llx, double lly, double urx, double ury) { }
+void QPainterOutputDev::type3D1(GfxState *state, double wx, double wy, double llx, double lly, double urx, double ury) { }
 
-void ArthurOutputDev::endTextObject(GfxState *state) { }
+void QPainterOutputDev::endTextObject(GfxState *state) { }
 
-void ArthurOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, int width, int height, bool invert, bool interpolate, bool inlineImg)
+void QPainterOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, int width, int height, bool invert, bool interpolate, bool inlineImg)
 {
     auto imgStr = std::make_unique<ImageStream>(str, width,
                                                 1, // numPixelComps
@@ -1012,7 +1012,7 @@ void ArthurOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, i
 }
 
 // TODO: lots more work here.
-void ArthurOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, bool interpolate, const int *maskColors, bool inlineImg)
+void QPainterOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, bool interpolate, const int *maskColors, bool inlineImg)
 {
     unsigned int *data;
     unsigned int *line;
@@ -1060,8 +1060,8 @@ void ArthurOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, int w
     m_painter.top()->drawImage(QRect(0, 0, 1, 1), image);
 }
 
-void ArthurOutputDev::drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, bool interpolate, Stream *maskStr, int maskWidth, int maskHeight, GfxImageColorMap *maskColorMap,
-                                          bool maskInterpolate)
+void QPainterOutputDev::drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, bool interpolate, Stream *maskStr, int maskWidth, int maskHeight, GfxImageColorMap *maskColorMap,
+                                            bool maskInterpolate)
 {
     // Bail out if the image size doesn't match the mask size.  I don't know
     // what to do in this case.
@@ -1115,7 +1115,7 @@ void ArthurOutputDev::drawSoftMaskedImage(GfxState *state, Object *ref, Stream *
     m_painter.top()->drawImage(QRect(0, 0, 1, 1), image);
 }
 
-void ArthurOutputDev::beginTransparencyGroup(GfxState * /*state*/, const double * /*bbox*/, GfxColorSpace * /*blendingColorSpace*/, bool /*isolated*/, bool /*knockout*/, bool /*forSoftMask*/)
+void QPainterOutputDev::beginTransparencyGroup(GfxState * /*state*/, const double * /*bbox*/, GfxColorSpace * /*blendingColorSpace*/, bool /*isolated*/, bool /*knockout*/, bool /*forSoftMask*/)
 {
     // The entire transparency group will be painted into a
     // freshly created QPicture object.  Since an existing painter
@@ -1125,7 +1125,7 @@ void ArthurOutputDev::beginTransparencyGroup(GfxState * /*state*/, const double
     m_painter.push(new QPainter(m_qpictures.top()));
 }
 
-void ArthurOutputDev::endTransparencyGroup(GfxState * /*state*/)
+void QPainterOutputDev::endTransparencyGroup(GfxState * /*state*/)
 {
     // Stop painting into the group
     m_painter.top()->end();
@@ -1144,7 +1144,7 @@ void ArthurOutputDev::endTransparencyGroup(GfxState * /*state*/)
     m_qpictures.pop();
 }
 
-void ArthurOutputDev::paintTransparencyGroup(GfxState * /*state*/, const double * /*bbox*/)
+void QPainterOutputDev::paintTransparencyGroup(GfxState * /*state*/, const double * /*bbox*/)
 {
     // Actually draw the transparency group
     m_painter.top()->drawPicture(0, 0, *m_lastTransparencyGroupPicture);
diff --git a/qt6/src/ArthurOutputDev.h b/qt5/src/QPainterOutputDev.h
similarity index 92%
rename from qt6/src/ArthurOutputDev.h
rename to qt5/src/QPainterOutputDev.h
index 141191b1..0ad858a6 100644
--- a/qt6/src/ArthurOutputDev.h
+++ b/qt5/src/QPainterOutputDev.h
@@ -1,6 +1,6 @@
 //========================================================================
 //
-// ArthurOutputDev.h
+// QPainterOutputDev.h
 //
 // Copyright 2003 Glyph & Cog, LLC
 //
@@ -27,8 +27,8 @@
 //
 //========================================================================
 
-#ifndef ARTHUROUTPUTDEV_H
-#define ARTHUROUTPUTDEV_H
+#ifndef QPAINTEROUTPUTDEV_H
+#define QPAINTEROUTPUTDEV_H
 
 #include <memory>
 #include <map>
@@ -47,20 +47,20 @@ class PDFDoc;
 
 class QRawFont;
 
-class ArthurType3Font;
+class QPainterOutputDevType3Font;
 
 //------------------------------------------------------------------------
-// ArthurOutputDev - QPainter renderer
+// QPainterOutputDev - Qt 5 QPainter renderer
 //------------------------------------------------------------------------
 
-class ArthurOutputDev : public OutputDev
+class QPainterOutputDev : public OutputDev
 {
 public:
     // Constructor.
-    ArthurOutputDev(QPainter *painter);
+    QPainterOutputDev(QPainter *painter);
 
     // Destructor.
-    ~ArthurOutputDev() override;
+    ~QPainterOutputDev() override;
 
     void setHintingPreference(QFont::HintingPreference hintingPreference) { m_hintingPreference = hintingPreference; }
 
@@ -185,13 +185,13 @@ private:
     QRawFont *m_rawFont;
     std::stack<QRawFont *> m_rawFontStack;
 
-    ArthurType3Font *m_currentType3Font;
-    std::stack<ArthurType3Font *> m_type3FontStack;
+    QPainterOutputDevType3Font *m_currentType3Font;
+    std::stack<QPainterOutputDevType3Font *> m_type3FontStack;
 
     // Cache all fonts by their Ref and font size
-    using ArthurFontID = std::pair<Ref, double>;
-    std::map<ArthurFontID, std::unique_ptr<QRawFont>> m_rawFontCache;
-    std::map<ArthurFontID, std::unique_ptr<ArthurType3Font>> m_type3FontCache;
+    using QPainterFontID = std::pair<Ref, double>;
+    std::map<QPainterFontID, std::unique_ptr<QRawFont>> m_rawFontCache;
+    std::map<QPainterFontID, std::unique_ptr<QPainterOutputDevType3Font>> m_type3FontCache;
     std::map<Ref, const int *> m_codeToGIDCache;
 
     // The table that maps character codes to glyph indexes
diff --git a/qt5/src/poppler-document.cc b/qt5/src/poppler-document.cc
index 6828da4d..8c449d1e 100644
--- a/qt5/src/poppler-document.cc
+++ b/qt5/src/poppler-document.cc
@@ -13,7 +13,7 @@
  * Copyright (C) 2017 Adrian Johnson <ajohnson at redneon.com>
  * Copyright (C) 2017 Suzuki Toshiya <mpsuzuki at hiroshima-u.ac.jp>
  * Copyright (C) 2018 Klarälvdalens Datakonsult AB, a KDAB Group company, <info at kdab.com>. Work sponsored by the LiMux project of the city of Munich
- * Copyright (C) 2019 Oliver Sander <oliver.sander at tu-dresden.de>
+ * Copyright (C) 2019, 2020 Oliver Sander <oliver.sander at tu-dresden.de>
  * Copyright (C) 2019 Alexander Volkov <a.volkov at rusbitech.ru>
  * Copyright (C) 2020 Philipp Knechtges <philipp-dev at knechtges.com>
  *
@@ -674,7 +674,7 @@ QColor Document::paperColor() const
 void Document::setRenderBackend(Document::RenderBackend backend)
 {
     // no need to delete the outputdev as for the moment we always create a splash one
-    // as the arthur one does not allow "precaching" due to it's signature
+    // as the QPainter one does not allow "precaching" due to it's signature
     // delete m_doc->m_outputDev;
     // m_doc->m_outputDev = NULL;
     m_doc->m_backend = backend;
@@ -691,7 +691,8 @@ QSet<Document::RenderBackend> Document::availableRenderBackends()
 #if defined(HAVE_SPLASH)
     ret << Document::SplashBackend;
 #endif
-    ret << Document::ArthurBackend;
+    ret << Document::QPainterBackend;
+    ret << Document::ArthurBackend; // For backward compatibility
     return ret;
 }
 
diff --git a/qt5/src/poppler-page.cc b/qt5/src/poppler-page.cc
index af7e4a11..1670bc68 100644
--- a/qt5/src/poppler-page.cc
+++ b/qt5/src/poppler-page.cc
@@ -57,7 +57,7 @@
 #include <TextOutputDev.h>
 #include <Annot.h>
 #include <Link.h>
-#include <ArthurOutputDev.h>
+#include <QPainterOutputDev.h>
 #include <Rendition.h>
 #if defined(HAVE_SPLASH)
 #    include <SplashOutputDev.h>
@@ -164,10 +164,10 @@ private:
     bool ignorePaperColor;
 };
 
-class QImageDumpingArthurOutputDev : public ArthurOutputDev, public OutputDevCallbackHelper
+class QImageDumpingQPainterOutputDev : public QPainterOutputDev, public OutputDevCallbackHelper
 {
 public:
-    QImageDumpingArthurOutputDev(QPainter *painter, QImage *i) : ArthurOutputDev(painter), image(i) { }
+    QImageDumpingQPainterOutputDev(QPainter *painter, QImage *i) : QPainterOutputDev(painter), image(i) { }
 
     void dump() override
     {
@@ -417,7 +417,7 @@ static auto shouldAbortExtractionInternalCallback = [](void *user_data) {
 // Needed to make the ternary operator happy.
 static bool (*nullAbortCallBack)(void *user_data) = nullptr;
 
-static bool renderToArthur(QImageDumpingArthurOutputDev *arthur_output, QPainter *painter, PageData *page, double xres, double yres, int x, int y, int w, int h, Page::Rotation rotate, Page::PainterFlags flags)
+static bool renderToQPainter(QImageDumpingQPainterOutputDev *qpainter_output, QPainter *painter, PageData *page, double xres, double yres, int x, int y, int w, int h, Page::Rotation rotate, Page::PainterFlags flags)
 {
     const bool savePainter = !(flags & Page::DontSaveAndRestore);
     if (savePainter)
@@ -428,12 +428,12 @@ static bool renderToArthur(QImageDumpingArthurOutputDev *arthur_output, QPainter
         painter->setRenderHint(QPainter::TextAntialiasing);
     painter->translate(x == -1 ? 0 : -x, y == -1 ? 0 : -y);
 
-    arthur_output->startDoc(page->parentDoc->doc);
+    qpainter_output->startDoc(page->parentDoc->doc);
 
     const bool hideAnnotations = page->parentDoc->m_hints & Document::HideAnnotations;
 
-    OutputDevCallbackHelper *abortHelper = arthur_output;
-    page->parentDoc->doc->displayPageSlice(arthur_output, page->index + 1, xres, yres, (int)rotate * 90, false, true, false, x, y, w, h, abortHelper->shouldAbortRenderCallback ? shouldAbortRenderInternalCallback : nullAbortCallBack,
+    OutputDevCallbackHelper *abortHelper = qpainter_output;
+    page->parentDoc->doc->displayPageSlice(qpainter_output, page->index + 1, xres, yres, (int)rotate * 90, false, true, false, x, y, w, h, abortHelper->shouldAbortRenderCallback ? shouldAbortRenderInternalCallback : nullAbortCallBack,
                                            abortHelper, (hideAnnotations) ? annotDisplayDecideCbk : nullAnnotCallBack, nullptr, true);
     if (savePainter)
         painter->restore();
@@ -533,7 +533,7 @@ QImage Page::renderToImage(double xres, double yres, int xPos, int yPos, int w,
 #endif
         break;
     }
-    case Poppler::Document::ArthurBackend: {
+    case Poppler::Document::QPainterBackend: {
         QSize size = pageSize();
         QImage tmpimg(w == -1 ? qRound(size.width() * xres / 72.0) : w, h == -1 ? qRound(size.height() * yres / 72.0) : h, QImage::Format_ARGB32);
 
@@ -542,16 +542,16 @@ QImage Page::renderToImage(double xres, double yres, int xPos, int yPos, int w,
         tmpimg.fill(bgColor);
 
         QPainter painter(&tmpimg);
-        QImageDumpingArthurOutputDev arthur_output(&painter, &tmpimg);
+        QImageDumpingQPainterOutputDev qpainter_output(&painter, &tmpimg);
 
-        arthur_output.setHintingPreference(QFontHintingFromPopplerHinting(m_page->parentDoc->m_hints));
+        qpainter_output.setHintingPreference(QFontHintingFromPopplerHinting(m_page->parentDoc->m_hints));
 
 #ifdef USE_CMS
-        arthur_output.setDisplayProfile(m_page->parentDoc->m_displayProfile);
+        qpainter_output.setDisplayProfile(m_page->parentDoc->m_displayProfile);
 #endif
 
-        arthur_output.setCallbacks(partialUpdateCallback, shouldDoPartialUpdateCallback, shouldAbortRenderCallback, payload);
-        renderToArthur(&arthur_output, &painter, m_page, xres, yres, xPos, yPos, w, h, rotate, DontSaveAndRestore);
+        qpainter_output.setCallbacks(partialUpdateCallback, shouldDoPartialUpdateCallback, shouldAbortRenderCallback, payload);
+        renderToQPainter(&qpainter_output, &painter, m_page, xres, yres, xPos, yPos, w, h, rotate, DontSaveAndRestore);
         painter.end();
         img = tmpimg;
         break;
@@ -572,12 +572,12 @@ bool Page::renderToPainter(QPainter *painter, double xres, double yres, int x, i
     switch (m_page->parentDoc->m_backend) {
     case Poppler::Document::SplashBackend:
         return false;
-    case Poppler::Document::ArthurBackend: {
-        QImageDumpingArthurOutputDev arthur_output(painter, nullptr);
+    case Poppler::Document::QPainterBackend: {
+        QImageDumpingQPainterOutputDev qpainter_output(painter, nullptr);
 
-        arthur_output.setHintingPreference(QFontHintingFromPopplerHinting(m_page->parentDoc->m_hints));
+        qpainter_output.setHintingPreference(QFontHintingFromPopplerHinting(m_page->parentDoc->m_hints));
 
-        return renderToArthur(&arthur_output, painter, m_page, xres, yres, x, y, w, h, rotate, flags);
+        return renderToQPainter(&qpainter_output, painter, m_page, xres, yres, x, y, w, h, rotate, flags);
     }
     }
     return false;
diff --git a/qt5/src/poppler-qt5.h b/qt5/src/poppler-qt5.h
index 5e78c9e5..6c167b65 100644
--- a/qt5/src/poppler-qt5.h
+++ b/qt5/src/poppler-qt5.h
@@ -16,7 +16,7 @@
  * Copyright (C) 2012, 2013 Thomas Freitag <Thomas.Freitag at alfa.de>
  * Copyright (C) 2013 Anthony Granger <grangeranthony at gmail.com>
  * Copyright (C) 2016 Jakub Alba <jakubalba at gmail.com>
- * Copyright (C) 2017 Oliver Sander <oliver.sander at tu-dresden.de>
+ * Copyright (C) 2017, 2020 Oliver Sander <oliver.sander at tu-dresden.de>
  * Copyright (C) 2017, 2018 Klarälvdalens Datakonsult AB, a KDAB Group company, <info at kdab.com>. Work sponsored by the LiMux project of the city of Munich
  * Copyright (C) 2018 Nelson Benítez León <nbenitezl at gmail.com>
  * Copyright (C) 2019 Jan Grulich <jgrulich at redhat.com>
@@ -695,7 +695,7 @@ rather unexpected results.
 
        \returns whether the painting succeeded
 
-       \note This method is only supported for Arthur
+       \note This method is only supported for the QPainterOutputDev
 
        \since 0.16
     */
@@ -1166,7 +1166,8 @@ public:
     enum RenderBackend
     {
         SplashBackend, ///< Splash backend
-        ArthurBackend ///< Arthur (Qt) backend
+        ArthurBackend, ///< \deprecated The old name of the QPainter backend
+        QPainterBackend = ArthurBackend ///< @since 20.11
     };
 
     /**
diff --git a/qt5/tests/check_stroke_opacity.cpp b/qt5/tests/check_stroke_opacity.cpp
index afdb223d..63ecaa6e 100644
--- a/qt5/tests/check_stroke_opacity.cpp
+++ b/qt5/tests/check_stroke_opacity.cpp
@@ -22,7 +22,7 @@ void TestStrokeOpacity::checkStrokeOpacity_data()
     QTest::addColumn<int>("backendType");
 
     QTest::newRow("splash") << (int)Poppler::Document::SplashBackend;
-    QTest::newRow("qpainter") << (int)Poppler::Document::ArthurBackend;
+    QTest::newRow("qpainter") << (int)Poppler::Document::QPainterBackend;
 }
 
 void TestStrokeOpacity::checkStrokeOpacity()
diff --git a/qt5/tests/test-poppler-qt5.cpp b/qt5/tests/test-poppler-qt5.cpp
index 5788b7cd..182e5eae 100644
--- a/qt5/tests/test-poppler-qt5.cpp
+++ b/qt5/tests/test-poppler-qt5.cpp
@@ -15,7 +15,7 @@ class PDFDisplay : public QWidget // picture display widget
 {
     Q_OBJECT
 public:
-    PDFDisplay(Poppler::Document *d, bool arthur, QWidget *parent = nullptr);
+    PDFDisplay(Poppler::Document *d, bool qpainter, QWidget *parent = nullptr);
     ~PDFDisplay() override;
     void setShowTextRects(bool show);
     void display();
@@ -34,14 +34,14 @@ private:
     QList<Poppler::TextBox *> textRects;
 };
 
-PDFDisplay::PDFDisplay(Poppler::Document *d, bool arthur, QWidget *parent) : QWidget(parent)
+PDFDisplay::PDFDisplay(Poppler::Document *d, bool qpainter, QWidget *parent) : QWidget(parent)
 {
     showTextRects = false;
     doc = d;
     m_currentPage = 0;
-    if (arthur) {
-        backendString = QStringLiteral("Arthur");
-        doc->setRenderBackend(Poppler::Document::ArthurBackend);
+    if (qpainter) {
+        backendString = QStringLiteral("QPainter");
+        doc->setRenderBackend(Poppler::Document::QPainterBackend);
     } else {
         backendString = QStringLiteral("Splash");
         doc->setRenderBackend(Poppler::Document::SplashBackend);
@@ -132,9 +132,9 @@ int main(int argc, char **argv)
 {
     QApplication a(argc, argv); // QApplication required!
 
-    if (argc < 2 || (argc == 3 && strcmp(argv[2], "-extract") != 0 && strcmp(argv[2], "-arthur") != 0 && strcmp(argv[2], "-textRects") != 0) || argc > 3) {
+    if (argc < 2 || (argc == 3 && strcmp(argv[2], "-extract") != 0 && strcmp(argv[2], "-qpainter") != 0 && strcmp(argv[2], "-textRects") != 0) || argc > 3) {
         // use argument as file name
-        qWarning() << "usage: test-poppler-qt5 filename [-extract|-arthur|-textRects]";
+        qWarning() << "usage: test-poppler-qt5 filename [-extract|-qpainter|-textRects]";
         exit(1);
     }
 
@@ -195,9 +195,9 @@ int main(int argc, char **argv)
         }
     }
 
-    if (argc == 2 || (argc == 3 && strcmp(argv[2], "-arthur") == 0) || (argc == 3 && strcmp(argv[2], "-textRects") == 0)) {
-        bool useArthur = (argc == 3 && strcmp(argv[2], "-arthur") == 0);
-        PDFDisplay test(doc, useArthur); // create picture display
+    if (argc == 2 || (argc == 3 && strcmp(argv[2], "-qpainter") == 0) || (argc == 3 && strcmp(argv[2], "-textRects") == 0)) {
+        bool useQPainter = (argc == 3 && strcmp(argv[2], "-qpainter") == 0);
+        PDFDisplay test(doc, useQPainter); // create picture display
         test.setWindowTitle(QStringLiteral("Poppler-Qt5 Test"));
         test.setShowTextRects(argc == 3 && strcmp(argv[2], "-textRects") == 0);
         test.display();
diff --git a/qt5/tests/test-render-to-file.cpp b/qt5/tests/test-render-to-file.cpp
index bfe8fb99..0cba2126 100644
--- a/qt5/tests/test-render-to-file.cpp
+++ b/qt5/tests/test-render-to-file.cpp
@@ -9,9 +9,9 @@ int main(int argc, char **argv)
 {
     QGuiApplication a(argc, argv); // QApplication required!
 
-    if (argc < 2 || (argc == 3 && strcmp(argv[2], "-arthur") != 0) || argc > 3) {
+    if (argc < 2 || (argc == 3 && strcmp(argv[2], "-qpainter") != 0) || argc > 3) {
         // use argument as file name
-        qWarning() << "usage: test-render-to-file-qt5 filename [-arthur]";
+        qWarning() << "usage: test-render-to-file-qt5 filename [-qpainter]";
         exit(1);
     }
 
@@ -33,9 +33,9 @@ int main(int argc, char **argv)
     }
 
     QString backendString;
-    if (argc == 3 && strcmp(argv[2], "-arthur") == 0) {
-        backendString = QStringLiteral("Arthur");
-        doc->setRenderBackend(Poppler::Document::ArthurBackend);
+    if (argc == 3 && strcmp(argv[2], "-qpainter") == 0) {
+        backendString = QStringLiteral("QPainter");
+        doc->setRenderBackend(Poppler::Document::QPainterBackend);
     } else {
         backendString = QStringLiteral("Splash");
         doc->setRenderBackend(Poppler::Document::SplashBackend);
diff --git a/qt6/demos/viewer.cpp b/qt6/demos/viewer.cpp
index 73410611..6bba6e04 100644
--- a/qt6/demos/viewer.cpp
+++ b/qt6/demos/viewer.cpp
@@ -77,7 +77,7 @@ PdfViewer::PdfViewer(QWidget *parent) : QMainWindow(parent), m_currentPage(0), m
     act->setChecked(true);
     act->setData(QVariant::fromValue(0));
     m_settingsRenderBackendGrp->addAction(act);
-    act = settingsRenderMenu->addAction(tr("Arthur"));
+    act = settingsRenderMenu->addAction(tr("QPainter"));
     act->setCheckable(true);
     act->setData(QVariant::fromValue(1));
     m_settingsRenderBackendGrp->addAction(act);
diff --git a/qt6/src/CMakeLists.txt b/qt6/src/CMakeLists.txt
index 3ea54420..f5042c52 100644
--- a/qt6/src/CMakeLists.txt
+++ b/qt6/src/CMakeLists.txt
@@ -33,7 +33,7 @@ set(poppler_qt6_SRCS
   poppler-page-transition.cc
   poppler-media.cc
   poppler-outline.cc
-  ArthurOutputDev.cc
+  QPainterOutputDev.cc
   poppler-version.cpp
 )
 add_library(poppler-qt6 ${poppler_qt6_SRCS})
diff --git a/qt6/src/ArthurOutputDev.cc b/qt6/src/QPainterOutputDev.cc
similarity index 90%
rename from qt6/src/ArthurOutputDev.cc
rename to qt6/src/QPainterOutputDev.cc
index a5a856b5..645b3cad 100644
--- a/qt6/src/ArthurOutputDev.cc
+++ b/qt6/src/QPainterOutputDev.cc
@@ -1,6 +1,6 @@
 //========================================================================
 //
-// ArthurOutputDev.cc
+// QPainterOutputDev.cc
 //
 // Copyright 2003 Glyph & Cog, LLC
 //
@@ -50,7 +50,7 @@
 #include "FontEncodingTables.h"
 #include <fofi/FoFiTrueType.h>
 #include <fofi/FoFiType1C.h>
-#include "ArthurOutputDev.h"
+#include "QPainterOutputDev.h"
 #include "Page.h"
 #include "Gfx.h"
 #include "PDFDoc.h"
@@ -61,10 +61,10 @@
 #include <QtGui/QPainterPath>
 #include <QPicture>
 
-class ArthurType3Font
+class QPainterOutputDevType3Font
 {
 public:
-    ArthurType3Font(PDFDoc *doc, Gfx8BitFont *font);
+    QPainterOutputDevType3Font(PDFDoc *doc, Gfx8BitFont *font);
 
     const QPicture &getGlyph(int gid) const;
 
@@ -78,7 +78,7 @@ public:
     std::vector<int> codeToGID;
 };
 
-ArthurType3Font::ArthurType3Font(PDFDoc *doc, Gfx8BitFont *font) : m_doc(doc), m_font(font)
+QPainterOutputDevType3Font::QPainterOutputDevType3Font(PDFDoc *doc, Gfx8BitFont *font) : m_doc(doc), m_font(font)
 {
     char *name;
     const Dict *charProcs = font->getCharProcs();
@@ -103,7 +103,7 @@ ArthurType3Font::ArthurType3Font(PDFDoc *doc, Gfx8BitFont *font) : m_doc(doc), m
     }
 }
 
-const QPicture &ArthurType3Font::getGlyph(int gid) const
+const QPicture &QPainterOutputDevType3Font::getGlyph(int gid) const
 {
     if (!glyphs[gid]) {
 
@@ -118,7 +118,7 @@ const QPicture &ArthurType3Font::getGlyph(int gid) const
         QPainter glyphPainter;
         glyphs[gid] = std::make_unique<QPicture>();
         glyphPainter.begin(glyphs[gid].get());
-        auto output_dev = std::make_unique<ArthurOutputDev>(&glyphPainter);
+        auto output_dev = std::make_unique<QPainterOutputDev>(&glyphPainter);
 
         auto gfx = std::make_unique<Gfx>(m_doc, output_dev.get(), resDict,
                                          &box, // pagebox
@@ -140,10 +140,10 @@ const QPicture &ArthurType3Font::getGlyph(int gid) const
 }
 
 //------------------------------------------------------------------------
-// ArthurOutputDev
+// QPainterOutputDev
 //------------------------------------------------------------------------
 
-ArthurOutputDev::ArthurOutputDev(QPainter *painter) : m_lastTransparencyGroupPicture(nullptr), m_hintingPreference(QFont::PreferDefaultHinting)
+QPainterOutputDev::QPainterOutputDev(QPainter *painter) : m_lastTransparencyGroupPicture(nullptr), m_hintingPreference(QFont::PreferDefaultHinting)
 {
     m_painter.push(painter);
     m_currentBrush = QBrush(Qt::SolidPattern);
@@ -159,7 +159,7 @@ ArthurOutputDev::ArthurOutputDev(QPainter *painter) : m_lastTransparencyGroupPic
     m_useCIDs = major > 2 || (major == 2 && (minor > 1 || (minor == 1 && patch > 7)));
 }
 
-ArthurOutputDev::~ArthurOutputDev()
+QPainterOutputDev::~QPainterOutputDev()
 {
     for (auto &codeToGID : m_codeToGIDCache) {
         gfree(const_cast<int *>(codeToGID.second));
@@ -168,7 +168,7 @@ ArthurOutputDev::~ArthurOutputDev()
     FT_Done_FreeType(m_ftLibrary);
 }
 
-void ArthurOutputDev::startDoc(PDFDoc *doc)
+void QPainterOutputDev::startDoc(PDFDoc *doc)
 {
     xref = doc->getXRef();
     m_doc = doc;
@@ -179,11 +179,11 @@ void ArthurOutputDev::startDoc(PDFDoc *doc)
     m_codeToGIDCache.clear();
 }
 
-void ArthurOutputDev::startPage(int pageNum, GfxState *state, XRef *) { }
+void QPainterOutputDev::startPage(int pageNum, GfxState *state, XRef *) { }
 
-void ArthurOutputDev::endPage() { }
+void QPainterOutputDev::endPage() { }
 
-void ArthurOutputDev::saveState(GfxState *state)
+void QPainterOutputDev::saveState(GfxState *state)
 {
     m_currentPenStack.push(m_currentPen);
     m_currentBrushStack.push(m_currentBrush);
@@ -194,7 +194,7 @@ void ArthurOutputDev::saveState(GfxState *state)
     m_painter.top()->save();
 }
 
-void ArthurOutputDev::restoreState(GfxState *state)
+void QPainterOutputDev::restoreState(GfxState *state)
 {
     m_painter.top()->restore();
 
@@ -210,21 +210,21 @@ void ArthurOutputDev::restoreState(GfxState *state)
     m_currentPenStack.pop();
 }
 
-void ArthurOutputDev::updateAll(GfxState *state)
+void QPainterOutputDev::updateAll(GfxState *state)
 {
     OutputDev::updateAll(state);
     m_needFontUpdate = true;
 }
 
 // Set CTM (Current Transformation Matrix) to a fixed matrix
-void ArthurOutputDev::setDefaultCTM(const double *ctm)
+void QPainterOutputDev::setDefaultCTM(const double *ctm)
 {
     m_painter.top()->setTransform(QTransform(ctm[0], ctm[1], ctm[2], ctm[3], ctm[4], ctm[5]));
 }
 
 // Update the CTM (Current Transformation Matrix), i.e., compose the old
 // CTM with a new matrix.
-void ArthurOutputDev::updateCTM(GfxState *state, double m11, double m12, double m21, double m22, double m31, double m32)
+void QPainterOutputDev::updateCTM(GfxState *state, double m11, double m12, double m21, double m22, double m31, double m32)
 {
     updateLineDash(state);
     updateLineJoin(state);
@@ -237,7 +237,7 @@ void ArthurOutputDev::updateCTM(GfxState *state, double m11, double m12, double
     m_painter.top()->setTransform(update, true);
 }
 
-void ArthurOutputDev::updateLineDash(GfxState *state)
+void QPainterOutputDev::updateLineDash(GfxState *state)
 {
     double *dashPattern;
     int dashLength;
@@ -272,12 +272,12 @@ void ArthurOutputDev::updateLineDash(GfxState *state)
     m_painter.top()->setPen(m_currentPen);
 }
 
-void ArthurOutputDev::updateFlatness(GfxState *state)
+void QPainterOutputDev::updateFlatness(GfxState *state)
 {
     // qDebug() << "updateFlatness";
 }
 
-void ArthurOutputDev::updateLineJoin(GfxState *state)
+void QPainterOutputDev::updateLineJoin(GfxState *state)
 {
     switch (state->getLineJoin()) {
     case 0:
@@ -296,7 +296,7 @@ void ArthurOutputDev::updateLineJoin(GfxState *state)
     m_painter.top()->setPen(m_currentPen);
 }
 
-void ArthurOutputDev::updateLineCap(GfxState *state)
+void QPainterOutputDev::updateLineCap(GfxState *state)
 {
     switch (state->getLineCap()) {
     case 0:
@@ -312,13 +312,13 @@ void ArthurOutputDev::updateLineCap(GfxState *state)
     m_painter.top()->setPen(m_currentPen);
 }
 
-void ArthurOutputDev::updateMiterLimit(GfxState *state)
+void QPainterOutputDev::updateMiterLimit(GfxState *state)
 {
     m_currentPen.setMiterLimit(state->getMiterLimit());
     m_painter.top()->setPen(m_currentPen);
 }
 
-void ArthurOutputDev::updateLineWidth(GfxState *state)
+void QPainterOutputDev::updateLineWidth(GfxState *state)
 {
     m_currentPen.setWidthF(state->getLineWidth());
     m_painter.top()->setPen(m_currentPen);
@@ -329,7 +329,7 @@ void ArthurOutputDev::updateLineWidth(GfxState *state)
     updateLineDash(state);
 }
 
-void ArthurOutputDev::updateFillColor(GfxState *state)
+void QPainterOutputDev::updateFillColor(GfxState *state)
 {
     GfxRGB rgb;
     QColor brushColour = m_currentBrush.color();
@@ -338,7 +338,7 @@ void ArthurOutputDev::updateFillColor(GfxState *state)
     m_currentBrush.setColor(brushColour);
 }
 
-void ArthurOutputDev::updateStrokeColor(GfxState *state)
+void QPainterOutputDev::updateStrokeColor(GfxState *state)
 {
     GfxRGB rgb;
     QColor penColour = m_currentPen.color();
@@ -348,7 +348,7 @@ void ArthurOutputDev::updateStrokeColor(GfxState *state)
     m_painter.top()->setPen(m_currentPen);
 }
 
-void ArthurOutputDev::updateBlendMode(GfxState *state)
+void QPainterOutputDev::updateBlendMode(GfxState *state)
 {
     GfxBlendMode blendMode = state->getBlendMode();
 
@@ -400,14 +400,14 @@ void ArthurOutputDev::updateBlendMode(GfxState *state)
     }
 }
 
-void ArthurOutputDev::updateFillOpacity(GfxState *state)
+void QPainterOutputDev::updateFillOpacity(GfxState *state)
 {
     QColor brushColour = m_currentBrush.color();
     brushColour.setAlphaF(state->getFillOpacity());
     m_currentBrush.setColor(brushColour);
 }
 
-void ArthurOutputDev::updateStrokeOpacity(GfxState *state)
+void QPainterOutputDev::updateStrokeOpacity(GfxState *state)
 {
     QColor penColour = m_currentPen.color();
     penColour.setAlphaF(state->getStrokeOpacity());
@@ -415,7 +415,7 @@ void ArthurOutputDev::updateStrokeOpacity(GfxState *state)
     m_painter.top()->setPen(m_currentPen);
 }
 
-void ArthurOutputDev::updateFont(GfxState *state)
+void QPainterOutputDev::updateFont(GfxState *state)
 {
     GfxFont *gfxFont = state->getFont();
     if (!gfxFont) {
@@ -423,7 +423,7 @@ void ArthurOutputDev::updateFont(GfxState *state)
     }
 
     // The key to look in the font caches
-    ArthurFontID fontID = { *gfxFont->getID(), state->getFontSize() };
+    QPainterFontID fontID = { *gfxFont->getID(), state->getFontSize() };
 
     // Current font is a type3 font
     if (gfxFont->getType() == fontType3) {
@@ -436,8 +436,8 @@ void ArthurOutputDev::updateFont(GfxState *state)
 
         } else {
 
-            m_currentType3Font = new ArthurType3Font(m_doc, (Gfx8BitFont *)gfxFont);
-            m_type3FontCache.insert(std::make_pair(fontID, std::unique_ptr<ArthurType3Font>(m_currentType3Font)));
+            m_currentType3Font = new QPainterOutputDevType3Font(m_doc, (Gfx8BitFont *)gfxFont);
+            m_type3FontCache.insert(std::make_pair(fontID, std::unique_ptr<QPainterOutputDevType3Font>(m_currentType3Font)));
         }
 
         return;
@@ -694,22 +694,22 @@ static QPainterPath convertPath(GfxState *state, const GfxPath *path, Qt::FillRu
     return qPath;
 }
 
-void ArthurOutputDev::stroke(GfxState *state)
+void QPainterOutputDev::stroke(GfxState *state)
 {
     m_painter.top()->strokePath(convertPath(state, state->getPath(), Qt::OddEvenFill), m_currentPen);
 }
 
-void ArthurOutputDev::fill(GfxState *state)
+void QPainterOutputDev::fill(GfxState *state)
 {
     m_painter.top()->fillPath(convertPath(state, state->getPath(), Qt::WindingFill), m_currentBrush);
 }
 
-void ArthurOutputDev::eoFill(GfxState *state)
+void QPainterOutputDev::eoFill(GfxState *state)
 {
     m_painter.top()->fillPath(convertPath(state, state->getPath(), Qt::OddEvenFill), m_currentBrush);
 }
 
-bool ArthurOutputDev::axialShadedFill(GfxState *state, GfxAxialShading *shading, double tMin, double tMax)
+bool QPainterOutputDev::axialShadedFill(GfxState *state, GfxAxialShading *shading, double tMin, double tMax)
 {
     double x0, y0, x1, y1;
     shading->getCoords(&x0, &y0, &x1, &y1);
@@ -835,17 +835,17 @@ bool ArthurOutputDev::axialShadedFill(GfxState *state, GfxAxialShading *shading,
     return true;
 }
 
-void ArthurOutputDev::clip(GfxState *state)
+void QPainterOutputDev::clip(GfxState *state)
 {
     m_painter.top()->setClipPath(convertPath(state, state->getPath(), Qt::WindingFill), Qt::IntersectClip);
 }
 
-void ArthurOutputDev::eoClip(GfxState *state)
+void QPainterOutputDev::eoClip(GfxState *state)
 {
     m_painter.top()->setClipPath(convertPath(state, state->getPath(), Qt::OddEvenFill), Qt::IntersectClip);
 }
 
-void ArthurOutputDev::clipToStrokePath(GfxState *state)
+void QPainterOutputDev::clipToStrokePath(GfxState *state)
 {
     QPainterPath clipPath = convertPath(state, state->getPath(), Qt::WindingFill);
 
@@ -863,7 +863,7 @@ void ArthurOutputDev::clipToStrokePath(GfxState *state)
     m_painter.top()->setClipPath(clipPathOutline, Qt::IntersectClip);
 }
 
-void ArthurOutputDev::drawChar(GfxState *state, double x, double y, double dx, double dy, double originX, double originY, CharCode code, int nBytes, const Unicode *u, int uLen)
+void QPainterOutputDev::drawChar(GfxState *state, double x, double y, double dx, double dy, double originX, double originY, CharCode code, int nBytes, const Unicode *u, int uLen)
 {
 
     // First handle type3 fonts
@@ -969,13 +969,13 @@ void ArthurOutputDev::drawChar(GfxState *state, double x, double y, double dx, d
     }
 }
 
-void ArthurOutputDev::type3D0(GfxState *state, double wx, double wy) { }
+void QPainterOutputDev::type3D0(GfxState *state, double wx, double wy) { }
 
-void ArthurOutputDev::type3D1(GfxState *state, double wx, double wy, double llx, double lly, double urx, double ury) { }
+void QPainterOutputDev::type3D1(GfxState *state, double wx, double wy, double llx, double lly, double urx, double ury) { }
 
-void ArthurOutputDev::endTextObject(GfxState *state) { }
+void QPainterOutputDev::endTextObject(GfxState *state) { }
 
-void ArthurOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, int width, int height, bool invert, bool interpolate, bool inlineImg)
+void QPainterOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, int width, int height, bool invert, bool interpolate, bool inlineImg)
 {
     auto imgStr = std::make_unique<ImageStream>(str, width,
                                                 1, // numPixelComps
@@ -1012,7 +1012,7 @@ void ArthurOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, i
 }
 
 // TODO: lots more work here.
-void ArthurOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, bool interpolate, const int *maskColors, bool inlineImg)
+void QPainterOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, bool interpolate, const int *maskColors, bool inlineImg)
 {
     unsigned int *data;
     unsigned int *line;
@@ -1060,8 +1060,8 @@ void ArthurOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, int w
     m_painter.top()->drawImage(QRect(0, 0, 1, 1), image);
 }
 
-void ArthurOutputDev::drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, bool interpolate, Stream *maskStr, int maskWidth, int maskHeight, GfxImageColorMap *maskColorMap,
-                                          bool maskInterpolate)
+void QPainterOutputDev::drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, bool interpolate, Stream *maskStr, int maskWidth, int maskHeight, GfxImageColorMap *maskColorMap,
+                                            bool maskInterpolate)
 {
     // Bail out if the image size doesn't match the mask size.  I don't know
     // what to do in this case.
@@ -1115,7 +1115,7 @@ void ArthurOutputDev::drawSoftMaskedImage(GfxState *state, Object *ref, Stream *
     m_painter.top()->drawImage(QRect(0, 0, 1, 1), image);
 }
 
-void ArthurOutputDev::beginTransparencyGroup(GfxState * /*state*/, const double * /*bbox*/, GfxColorSpace * /*blendingColorSpace*/, bool /*isolated*/, bool /*knockout*/, bool /*forSoftMask*/)
+void QPainterOutputDev::beginTransparencyGroup(GfxState * /*state*/, const double * /*bbox*/, GfxColorSpace * /*blendingColorSpace*/, bool /*isolated*/, bool /*knockout*/, bool /*forSoftMask*/)
 {
     // The entire transparency group will be painted into a
     // freshly created QPicture object.  Since an existing painter
@@ -1125,7 +1125,7 @@ void ArthurOutputDev::beginTransparencyGroup(GfxState * /*state*/, const double
     m_painter.push(new QPainter(m_qpictures.top()));
 }
 
-void ArthurOutputDev::endTransparencyGroup(GfxState * /*state*/)
+void QPainterOutputDev::endTransparencyGroup(GfxState * /*state*/)
 {
     // Stop painting into the group
     m_painter.top()->end();
@@ -1144,7 +1144,7 @@ void ArthurOutputDev::endTransparencyGroup(GfxState * /*state*/)
     m_qpictures.pop();
 }
 
-void ArthurOutputDev::paintTransparencyGroup(GfxState * /*state*/, const double * /*bbox*/)
+void QPainterOutputDev::paintTransparencyGroup(GfxState * /*state*/, const double * /*bbox*/)
 {
     // Actually draw the transparency group
     m_painter.top()->drawPicture(0, 0, *m_lastTransparencyGroupPicture);
diff --git a/qt5/src/ArthurOutputDev.h b/qt6/src/QPainterOutputDev.h
similarity index 92%
rename from qt5/src/ArthurOutputDev.h
rename to qt6/src/QPainterOutputDev.h
index 6f998f69..d15579be 100644
--- a/qt5/src/ArthurOutputDev.h
+++ b/qt6/src/QPainterOutputDev.h
@@ -1,6 +1,6 @@
 //========================================================================
 //
-// ArthurOutputDev.h
+// QPainterOutputDev.h
 //
 // Copyright 2003 Glyph & Cog, LLC
 //
@@ -27,8 +27,8 @@
 //
 //========================================================================
 
-#ifndef ARTHUROUTPUTDEV_H
-#define ARTHUROUTPUTDEV_H
+#ifndef QPAINTEROUTPUTDEV_H
+#define QPAINTEROUTPUTDEV_H
 
 #include <memory>
 #include <map>
@@ -47,20 +47,20 @@ class PDFDoc;
 
 class QRawFont;
 
-class ArthurType3Font;
+class QPainterOutputDevType3Font;
 
 //------------------------------------------------------------------------
-// ArthurOutputDev - Qt 5 QPainter renderer
+// QPainterOutputDev - QPainter renderer
 //------------------------------------------------------------------------
 
-class ArthurOutputDev : public OutputDev
+class QPainterOutputDev : public OutputDev
 {
 public:
     // Constructor.
-    ArthurOutputDev(QPainter *painter);
+    QPainterOutputDev(QPainter *painter);
 
     // Destructor.
-    ~ArthurOutputDev() override;
+    ~QPainterOutputDev() override;
 
     void setHintingPreference(QFont::HintingPreference hintingPreference) { m_hintingPreference = hintingPreference; }
 
@@ -185,13 +185,13 @@ private:
     QRawFont *m_rawFont;
     std::stack<QRawFont *> m_rawFontStack;
 
-    ArthurType3Font *m_currentType3Font;
-    std::stack<ArthurType3Font *> m_type3FontStack;
+    QPainterOutputDevType3Font *m_currentType3Font;
+    std::stack<QPainterOutputDevType3Font *> m_type3FontStack;
 
     // Cache all fonts by their Ref and font size
-    using ArthurFontID = std::pair<Ref, double>;
-    std::map<ArthurFontID, std::unique_ptr<QRawFont>> m_rawFontCache;
-    std::map<ArthurFontID, std::unique_ptr<ArthurType3Font>> m_type3FontCache;
+    using QPainterFontID = std::pair<Ref, double>;
+    std::map<QPainterFontID, std::unique_ptr<QRawFont>> m_rawFontCache;
+    std::map<QPainterFontID, std::unique_ptr<QPainterOutputDevType3Font>> m_type3FontCache;
     std::map<Ref, const int *> m_codeToGIDCache;
 
     // The table that maps character codes to glyph indexes
diff --git a/qt6/src/poppler-document.cc b/qt6/src/poppler-document.cc
index 55b1858f..d014e253 100644
--- a/qt6/src/poppler-document.cc
+++ b/qt6/src/poppler-document.cc
@@ -657,7 +657,7 @@ QColor Document::paperColor() const
 void Document::setRenderBackend(Document::RenderBackend backend)
 {
     // no need to delete the outputdev as for the moment we always create a splash one
-    // as the arthur one does not allow "precaching" due to it's signature
+    // as the QPainter one does not allow "precaching" due to its signature
     // delete m_doc->m_outputDev;
     // m_doc->m_outputDev = NULL;
     m_doc->m_backend = backend;
@@ -674,7 +674,7 @@ QSet<Document::RenderBackend> Document::availableRenderBackends()
 #if defined(HAVE_SPLASH)
     ret << Document::SplashBackend;
 #endif
-    ret << Document::ArthurBackend;
+    ret << Document::QPainterBackend;
     return ret;
 }
 
diff --git a/qt6/src/poppler-page.cc b/qt6/src/poppler-page.cc
index 61fd8898..7153c514 100644
--- a/qt6/src/poppler-page.cc
+++ b/qt6/src/poppler-page.cc
@@ -57,7 +57,7 @@
 #include <TextOutputDev.h>
 #include <Annot.h>
 #include <Link.h>
-#include <ArthurOutputDev.h>
+#include <QPainterOutputDev.h>
 #include <Rendition.h>
 #if defined(HAVE_SPLASH)
 #    include <SplashOutputDev.h>
@@ -164,10 +164,10 @@ private:
     bool ignorePaperColor;
 };
 
-class QImageDumpingArthurOutputDev : public ArthurOutputDev, public OutputDevCallbackHelper
+class QImageDumpingQPainterOutputDev : public QPainterOutputDev, public OutputDevCallbackHelper
 {
 public:
-    QImageDumpingArthurOutputDev(QPainter *painter, QImage *i) : ArthurOutputDev(painter), image(i) { }
+    QImageDumpingQPainterOutputDev(QPainter *painter, QImage *i) : QPainterOutputDev(painter), image(i) { }
 
     void dump() override
     {
@@ -417,7 +417,7 @@ static auto shouldAbortExtractionInternalCallback = [](void *user_data) {
 // Needed to make the ternary operator happy.
 static bool (*nullAbortCallBack)(void *user_data) = nullptr;
 
-static bool renderToArthur(QImageDumpingArthurOutputDev *arthur_output, QPainter *painter, PageData *page, double xres, double yres, int x, int y, int w, int h, Page::Rotation rotate, Page::PainterFlags flags)
+static bool renderToQPainter(QImageDumpingQPainterOutputDev *qpainter_output, QPainter *painter, PageData *page, double xres, double yres, int x, int y, int w, int h, Page::Rotation rotate, Page::PainterFlags flags)
 {
     const bool savePainter = !(flags & Page::DontSaveAndRestore);
     if (savePainter)
@@ -428,12 +428,12 @@ static bool renderToArthur(QImageDumpingArthurOutputDev *arthur_output, QPainter
         painter->setRenderHint(QPainter::TextAntialiasing);
     painter->translate(x == -1 ? 0 : -x, y == -1 ? 0 : -y);
 
-    arthur_output->startDoc(page->parentDoc->doc);
+    qpainter_output->startDoc(page->parentDoc->doc);
 
     const bool hideAnnotations = page->parentDoc->m_hints & Document::HideAnnotations;
 
-    OutputDevCallbackHelper *abortHelper = arthur_output;
-    page->parentDoc->doc->displayPageSlice(arthur_output, page->index + 1, xres, yres, (int)rotate * 90, false, true, false, x, y, w, h, abortHelper->shouldAbortRenderCallback ? shouldAbortRenderInternalCallback : nullAbortCallBack,
+    OutputDevCallbackHelper *abortHelper = qpainter_output;
+    page->parentDoc->doc->displayPageSlice(qpainter_output, page->index + 1, xres, yres, (int)rotate * 90, false, true, false, x, y, w, h, abortHelper->shouldAbortRenderCallback ? shouldAbortRenderInternalCallback : nullAbortCallBack,
                                            abortHelper, (hideAnnotations) ? annotDisplayDecideCbk : nullAnnotCallBack, nullptr, true);
     if (savePainter)
         painter->restore();
@@ -533,7 +533,7 @@ QImage Page::renderToImage(double xres, double yres, int xPos, int yPos, int w,
 #endif
         break;
     }
-    case Poppler::Document::ArthurBackend: {
+    case Poppler::Document::QPainterBackend: {
         QSize size = pageSize();
         QImage tmpimg(w == -1 ? qRound(size.width() * xres / 72.0) : w, h == -1 ? qRound(size.height() * yres / 72.0) : h, QImage::Format_ARGB32);
 
@@ -542,16 +542,16 @@ QImage Page::renderToImage(double xres, double yres, int xPos, int yPos, int w,
         tmpimg.fill(bgColor);
 
         QPainter painter(&tmpimg);
-        QImageDumpingArthurOutputDev arthur_output(&painter, &tmpimg);
+        QImageDumpingQPainterOutputDev qpainter_output(&painter, &tmpimg);
 
-        arthur_output.setHintingPreference(QFontHintingFromPopplerHinting(m_page->parentDoc->m_hints));
+        qpainter_output.setHintingPreference(QFontHintingFromPopplerHinting(m_page->parentDoc->m_hints));
 
 #ifdef USE_CMS
-        arthur_output.setDisplayProfile(m_page->parentDoc->m_displayProfile);
+        qpainter_output.setDisplayProfile(m_page->parentDoc->m_displayProfile);
 #endif
 
-        arthur_output.setCallbacks(partialUpdateCallback, shouldDoPartialUpdateCallback, shouldAbortRenderCallback, payload);
-        renderToArthur(&arthur_output, &painter, m_page, xres, yres, xPos, yPos, w, h, rotate, DontSaveAndRestore);
+        qpainter_output.setCallbacks(partialUpdateCallback, shouldDoPartialUpdateCallback, shouldAbortRenderCallback, payload);
+        renderToQPainter(&qpainter_output, &painter, m_page, xres, yres, xPos, yPos, w, h, rotate, DontSaveAndRestore);
         painter.end();
         img = tmpimg;
         break;
@@ -572,12 +572,12 @@ bool Page::renderToPainter(QPainter *painter, double xres, double yres, int x, i
     switch (m_page->parentDoc->m_backend) {
     case Poppler::Document::SplashBackend:
         return false;
-    case Poppler::Document::ArthurBackend: {
-        QImageDumpingArthurOutputDev arthur_output(painter, nullptr);
+    case Poppler::Document::QPainterBackend: {
+        QImageDumpingQPainterOutputDev qpainter_output(painter, nullptr);
 
-        arthur_output.setHintingPreference(QFontHintingFromPopplerHinting(m_page->parentDoc->m_hints));
+        qpainter_output.setHintingPreference(QFontHintingFromPopplerHinting(m_page->parentDoc->m_hints));
 
-        return renderToArthur(&arthur_output, painter, m_page, xres, yres, x, y, w, h, rotate, flags);
+        return renderToQPainter(&qpainter_output, painter, m_page, xres, yres, x, y, w, h, rotate, flags);
     }
     }
     return false;
diff --git a/qt6/src/poppler-qt6.h b/qt6/src/poppler-qt6.h
index b129db94..c3c3f631 100644
--- a/qt6/src/poppler-qt6.h
+++ b/qt6/src/poppler-qt6.h
@@ -16,7 +16,7 @@
  * Copyright (C) 2012, 2013 Thomas Freitag <Thomas.Freitag at alfa.de>
  * Copyright (C) 2013 Anthony Granger <grangeranthony at gmail.com>
  * Copyright (C) 2016 Jakub Alba <jakubalba at gmail.com>
- * Copyright (C) 2017 Oliver Sander <oliver.sander at tu-dresden.de>
+ * Copyright (C) 2017, 2020 Oliver Sander <oliver.sander at tu-dresden.de>
  * Copyright (C) 2017, 2018 Klarälvdalens Datakonsult AB, a KDAB Group company, <info at kdab.com>. Work sponsored by the LiMux project of the city of Munich
  * Copyright (C) 2018 Nelson Benítez León <nbenitezl at gmail.com>
  * Copyright (C) 2019 Jan Grulich <jgrulich at redhat.com>
@@ -668,7 +668,7 @@ rather unexpected results.
 
        \returns whether the painting succeeded
 
-       \note This method is only supported for Arthur
+       \note This method is only supported for the QPainterOutputDev
     */
     bool renderToPainter(QPainter *painter, double xres = 72.0, double yres = 72.0, int x = -1, int y = -1, int w = -1, int h = -1, Rotation rotate = Rotate0, PainterFlags flags = NoPainterFlags) const;
 
@@ -1083,7 +1083,7 @@ public:
     enum RenderBackend
     {
         SplashBackend, ///< Splash backend
-        ArthurBackend ///< Arthur (Qt) backend
+        QPainterBackend ///< Qt backend
     };
 
     /**
diff --git a/qt6/tests/check_stroke_opacity.cpp b/qt6/tests/check_stroke_opacity.cpp
index 05b7dff2..4ea3e1a9 100644
--- a/qt6/tests/check_stroke_opacity.cpp
+++ b/qt6/tests/check_stroke_opacity.cpp
@@ -22,7 +22,7 @@ void TestStrokeOpacity::checkStrokeOpacity_data()
     QTest::addColumn<int>("backendType");
 
     QTest::newRow("splash") << (int)Poppler::Document::SplashBackend;
-    QTest::newRow("qpainter") << (int)Poppler::Document::ArthurBackend;
+    QTest::newRow("qpainter") << (int)Poppler::Document::QPainterBackend;
 }
 
 void TestStrokeOpacity::checkStrokeOpacity()
diff --git a/qt6/tests/test-poppler-qt6.cpp b/qt6/tests/test-poppler-qt6.cpp
index b7c0f66a..be5b1027 100644
--- a/qt6/tests/test-poppler-qt6.cpp
+++ b/qt6/tests/test-poppler-qt6.cpp
@@ -15,7 +15,7 @@ class PDFDisplay : public QWidget // picture display widget
 {
     Q_OBJECT
 public:
-    PDFDisplay(Poppler::Document *d, bool arthur, QWidget *parent = nullptr);
+    PDFDisplay(Poppler::Document *d, bool qpainter, QWidget *parent = nullptr);
     ~PDFDisplay() override;
     void setShowTextRects(bool show);
     void display();
@@ -34,14 +34,14 @@ private:
     QList<Poppler::TextBox *> textRects;
 };
 
-PDFDisplay::PDFDisplay(Poppler::Document *d, bool arthur, QWidget *parent) : QWidget(parent)
+PDFDisplay::PDFDisplay(Poppler::Document *d, bool qpainter, QWidget *parent) : QWidget(parent)
 {
     showTextRects = false;
     doc = d;
     m_currentPage = 0;
-    if (arthur) {
-        backendString = QStringLiteral("Arthur");
-        doc->setRenderBackend(Poppler::Document::ArthurBackend);
+    if (qpainter) {
+        backendString = QStringLiteral("QPainter");
+        doc->setRenderBackend(Poppler::Document::QPainterBackend);
     } else {
         backendString = QStringLiteral("Splash");
         doc->setRenderBackend(Poppler::Document::SplashBackend);
@@ -132,9 +132,9 @@ int main(int argc, char **argv)
 {
     QApplication a(argc, argv); // QApplication required!
 
-    if (argc < 2 || (argc == 3 && strcmp(argv[2], "-extract") != 0 && strcmp(argv[2], "-arthur") != 0 && strcmp(argv[2], "-textRects") != 0) || argc > 3) {
+    if (argc < 2 || (argc == 3 && strcmp(argv[2], "-extract") != 0 && strcmp(argv[2], "-qpainter") != 0 && strcmp(argv[2], "-textRects") != 0) || argc > 3) {
         // use argument as file name
-        qWarning() << "usage: test-poppler-qt6 filename [-extract|-arthur|-textRects]";
+        qWarning() << "usage: test-poppler-qt6 filename [-extract|-qpainter|-textRects]";
         exit(1);
     }
 
@@ -195,9 +195,9 @@ int main(int argc, char **argv)
         }
     }
 
-    if (argc == 2 || (argc == 3 && strcmp(argv[2], "-arthur") == 0) || (argc == 3 && strcmp(argv[2], "-textRects") == 0)) {
-        bool useArthur = (argc == 3 && strcmp(argv[2], "-arthur") == 0);
-        PDFDisplay test(doc, useArthur); // create picture display
+    if (argc == 2 || (argc == 3 && strcmp(argv[2], "-qpainter") == 0) || (argc == 3 && strcmp(argv[2], "-textRects") == 0)) {
+        bool useQPainter = (argc == 3 && strcmp(argv[2], "-qpainter") == 0);
+        PDFDisplay test(doc, useQPainter); // create picture display
         test.setWindowTitle(QStringLiteral("Poppler-Qt6 Test"));
         test.setShowTextRects(argc == 3 && strcmp(argv[2], "-textRects") == 0);
         test.display();
diff --git a/qt6/tests/test-render-to-file.cpp b/qt6/tests/test-render-to-file.cpp
index b5f73b99..08063c3d 100644
--- a/qt6/tests/test-render-to-file.cpp
+++ b/qt6/tests/test-render-to-file.cpp
@@ -9,9 +9,9 @@ int main(int argc, char **argv)
 {
     QGuiApplication a(argc, argv); // QApplication required!
 
-    if (argc < 2 || (argc == 3 && strcmp(argv[2], "-arthur") != 0) || argc > 3) {
+    if (argc < 2 || (argc == 3 && strcmp(argv[2], "-qpainter") != 0) || argc > 3) {
         // use argument as file name
-        qWarning() << "usage: test-render-to-file-qt6 filename [-arthur]";
+        qWarning() << "usage: test-render-to-file-qt6 filename [-qpainter]";
         exit(1);
     }
 
@@ -33,9 +33,9 @@ int main(int argc, char **argv)
     }
 
     QString backendString;
-    if (argc == 3 && strcmp(argv[2], "-arthur") == 0) {
-        backendString = QStringLiteral("Arthur");
-        doc->setRenderBackend(Poppler::Document::ArthurBackend);
+    if (argc == 3 && strcmp(argv[2], "-qpainter") == 0) {
+        backendString = QStringLiteral("QPainter");
+        doc->setRenderBackend(Poppler::Document::QPainterBackend);
     } else {
         backendString = QStringLiteral("Splash");
         doc->setRenderBackend(Poppler::Document::SplashBackend);


More information about the poppler mailing list