diff --git a/core/fpdfdoc/cpdf_interactiveform.cpp b/core/fpdfdoc/cpdf_interactiveform.cpp
index ee5670b..635b72c 100644
--- a/core/fpdfdoc/cpdf_interactiveform.cpp
+++ b/core/fpdfdoc/cpdf_interactiveform.cpp
@@ -148,6 +148,19 @@
   return csTmp;
 }
 
+RetainPtr<CPDF_Font> AddStandardFont(CPDF_Document* pDocument,
+                                     ByteString csFontName) {
+  if (!pDocument || csFontName.IsEmpty())
+    return nullptr;
+
+  auto* pPageData = CPDF_DocPageData::FromDocument(pDocument);
+  if (csFontName == "ZapfDingbats")
+    return pPageData->AddStandardFont(csFontName, nullptr);
+
+  static const CPDF_FontEncoding encoding(PDFFONT_ENCODING_WINANSI);
+  return pPageData->AddStandardFont(csFontName, &encoding);
+}
+
 uint8_t GetNativeCharSet() {
   return FX_GetCharsetFromCodePage(FXSYS_GetACP());
 }
@@ -166,8 +179,8 @@
   if (!pFormDict->KeyExist("DR")) {
     ByteString csBaseName;
     uint8_t charSet = GetNativeCharSet();
-    RetainPtr<CPDF_Font> pFont = CPDF_InteractiveForm::AddStandardFont(
-        pDocument, CFX_Font::kDefaultAnsiFontName);
+    RetainPtr<CPDF_Font> pFont =
+        AddStandardFont(pDocument, CFX_Font::kDefaultAnsiFontName);
     if (pFont)
       AddFont(pFormDict, pDocument, pFont, &csBaseName);
 
@@ -597,20 +610,6 @@
   s_bUpdateAP = bUpdateAP;
 }
 
-RetainPtr<CPDF_Font> CPDF_InteractiveForm::AddStandardFont(
-    CPDF_Document* pDocument,
-    ByteString csFontName) {
-  if (!pDocument || csFontName.IsEmpty())
-    return nullptr;
-
-  auto* pPageData = CPDF_DocPageData::FromDocument(pDocument);
-  if (csFontName == "ZapfDingbats")
-    return pPageData->AddStandardFont(csFontName, nullptr);
-
-  static const CPDF_FontEncoding encoding(PDFFONT_ENCODING_WINANSI);
-  return pPageData->AddStandardFont(csFontName, &encoding);
-}
-
 RetainPtr<CPDF_Font> CPDF_InteractiveForm::AddNativeFont(
     uint8_t charSet,
     CPDF_Document* pDocument) {
diff --git a/core/fpdfdoc/cpdf_interactiveform.h b/core/fpdfdoc/cpdf_interactiveform.h
index e4e8f42..320d1ac 100644
--- a/core/fpdfdoc/cpdf_interactiveform.h
+++ b/core/fpdfdoc/cpdf_interactiveform.h
@@ -49,8 +49,6 @@
 
   static void SetUpdateAP(bool bUpdateAP);
   static bool IsUpdateAPEnabled();
-  static RetainPtr<CPDF_Font> AddStandardFont(CPDF_Document* pDocument,
-                                              ByteString csFontName);
   static RetainPtr<CPDF_Font> AddNativeFont(uint8_t iCharSet,
                                             CPDF_Document* pDocument);
   static RetainPtr<CPDF_Font> AddNativeInteractiveFormFont(
