diff --git a/fpdfsdk/fpdf_edit_embeddertest.cpp b/fpdfsdk/fpdf_edit_embeddertest.cpp
index 972b204..fba054b 100644
--- a/fpdfsdk/fpdf_edit_embeddertest.cpp
+++ b/fpdfsdk/fpdf_edit_embeddertest.cpp
@@ -2924,6 +2924,7 @@
 TEST_F(FPDFEditEmbedderTest, TextFontProperties) {
   // bad object tests
   EXPECT_FALSE(FPDFTextObj_GetFont(nullptr));
+  EXPECT_EQ(0U, FPDFFont_GetBaseName(nullptr, nullptr, 5));
   EXPECT_EQ(0U, FPDFFont_GetFamilyName(nullptr, nullptr, 5));
   EXPECT_EQ(-1, FPDFFont_GetFlags(nullptr));
   EXPECT_EQ(-1, FPDFFont_GetWeight(nullptr));
@@ -2977,6 +2978,26 @@
   }
 
   {
+    // FPDFFont_GetBaseName() positive testing.
+    unsigned long size = FPDFFont_GetBaseName(font, nullptr, 0);
+    const char kExpectedFontName[] = "LiberationSerif";
+    ASSERT_EQ(sizeof(kExpectedFontName), size);
+    std::vector<char> font_name(size);
+    ASSERT_EQ(size, FPDFFont_GetBaseName(font, font_name.data(), size));
+    ASSERT_STREQ(kExpectedFontName, font_name.data());
+
+    // FPDFFont_GetBaseName() negative testing.
+    ASSERT_EQ(0U, FPDFFont_GetBaseName(nullptr, nullptr, 0));
+
+    font_name.resize(2);
+    font_name[0] = 'x';
+    font_name[1] = '\0';
+    size = FPDFFont_GetBaseName(font, font_name.data(), font_name.size());
+    ASSERT_EQ(sizeof(kExpectedFontName), size);
+    ASSERT_STREQ("x", font_name.data());
+  }
+
+  {
     // FPDFFont_GetFamilyName() positive testing.
     unsigned long size = FPDFFont_GetFamilyName(font, nullptr, 0);
     const char kExpectedFontName[] = "Liberation Serif";
diff --git a/fpdfsdk/fpdf_edittext.cpp b/fpdfsdk/fpdf_edittext.cpp
index 6e9a586..482f845 100644
--- a/fpdfsdk/fpdf_edittext.cpp
+++ b/fpdfsdk/fpdf_edittext.cpp
@@ -849,6 +849,22 @@
   return FPDFFontFromCPDFFont(pTextObj->GetFont());
 }
 
+FPDF_EXPORT size_t FPDF_CALLCONV FPDFFont_GetBaseName(FPDF_FONT font,
+                                                      char* buffer,
+                                                      size_t length) {
+  auto* cfont = CPDFFontFromFPDFFont(font);
+  if (!cfont) {
+    return 0;
+  }
+
+  // SAFETY: required from caller.
+  auto result_span = UNSAFE_BUFFERS(SpanFromFPDFApiArgs(buffer, length));
+  ByteString name = cfont->GetFont()->GetBaseFontName();
+  pdfium::span<const char> name_span = name.span_with_terminator();
+  fxcrt::try_spancpy(result_span, name_span);
+  return name_span.size();
+}
+
 FPDF_EXPORT size_t FPDF_CALLCONV FPDFFont_GetFamilyName(FPDF_FONT font,
                                                         char* buffer,
                                                         size_t length) {
diff --git a/fpdfsdk/fpdf_view_c_api_test.c b/fpdfsdk/fpdf_view_c_api_test.c
index f30160c..7018331 100644
--- a/fpdfsdk/fpdf_view_c_api_test.c
+++ b/fpdfsdk/fpdf_view_c_api_test.c
@@ -163,6 +163,7 @@
     // fpdf_edit.h
     CHK(FPDFFont_Close);
     CHK(FPDFFont_GetAscent);
+    CHK(FPDFFont_GetBaseName);
     CHK(FPDFFont_GetDescent);
     CHK(FPDFFont_GetFamilyName);
     CHK(FPDFFont_GetFlags);
diff --git a/public/fpdf_edit.h b/public/fpdf_edit.h
index 2c758f3..19eee7f 100644
--- a/public/fpdf_edit.h
+++ b/public/fpdf_edit.h
@@ -1365,6 +1365,24 @@
 FPDF_EXPORT FPDF_FONT FPDF_CALLCONV FPDFTextObj_GetFont(FPDF_PAGEOBJECT text);
 
 // Experimental API.
+// Get the base name of a font.
+//
+// font   - the handle to the font object.
+// buffer - the address of a buffer that receives the base font name.
+// length - the size, in bytes, of |buffer|.
+//
+// Returns the number of bytes in the base name (including the trailing NUL
+// character) on success, 0 on error. The base name is typically the font's
+// PostScript name.
+//
+// Regardless of the platform, the |buffer| is always in UTF-8 encoding.
+// If |length| is less than the returned length, or |buffer| is NULL, |buffer|
+// will not be modified.
+FPDF_EXPORT size_t FPDF_CALLCONV FPDFFont_GetBaseName(FPDF_FONT font,
+                                                      char* buffer,
+                                                      size_t length);
+
+// Experimental API.
 // Get the family name of a font.
 //
 // font   - the handle to the font object.
