diff --git a/core/fpdfapi/render/cpdf_imagerenderer.cpp b/core/fpdfapi/render/cpdf_imagerenderer.cpp
index 0a662a2..92d9f87 100644
--- a/core/fpdfapi/render/cpdf_imagerenderer.cpp
+++ b/core/fpdfapi/render/cpdf_imagerenderer.cpp
@@ -205,7 +205,7 @@
   return StartDIBBase();
 }
 
-bool CPDF_ImageRenderer::NotDrawing() const {
+bool CPDF_ImageRenderer::IsPrinting() const {
   if (!m_pRenderStatus->IsPrint()) {
     return false;
   }
@@ -288,7 +288,7 @@
 }
 
 bool CPDF_ImageRenderer::DrawPatternImage() {
-  if (NotDrawing()) {
+  if (IsPrinting()) {
     m_Result = false;
     return false;
   }
@@ -334,7 +334,7 @@
 }
 
 bool CPDF_ImageRenderer::DrawMaskedImage() {
-  if (NotDrawing()) {
+  if (IsPrinting()) {
     m_Result = false;
     return false;
   }
@@ -410,7 +410,7 @@
 
   if ((fabs(m_ImageMatrix.b) >= 0.5f || m_ImageMatrix.a == 0) ||
       (fabs(m_ImageMatrix.c) >= 0.5f || m_ImageMatrix.d == 0)) {
-    if (NotDrawing()) {
+    if (IsPrinting()) {
       m_Result = false;
       return false;
     }
@@ -457,7 +457,7 @@
       return false;
     }
   }
-  if (NotDrawing()) {
+  if (IsPrinting()) {
     m_Result = false;
     return true;
   }
diff --git a/core/fpdfapi/render/cpdf_imagerenderer.h b/core/fpdfapi/render/cpdf_imagerenderer.h
index 301c3e2..b718d91 100644
--- a/core/fpdfapi/render/cpdf_imagerenderer.h
+++ b/core/fpdfapi/render/cpdf_imagerenderer.h
@@ -63,7 +63,7 @@
   bool ContinueTransform(PauseIndicatorIface* pPause);
   bool DrawMaskedImage();
   bool DrawPatternImage();
-  bool NotDrawing() const;
+  bool IsPrinting() const;
   FX_RECT GetDrawRect() const;
   CFX_Matrix GetDrawMatrix(const FX_RECT& rect) const;
   // Returns the mask, or nullptr if the mask could not be created.
