diff --git a/build-tools/capi_parser/src/coreImpl/parser/kit_sub_system/c_file_kit_sub_system.json b/build-tools/capi_parser/src/coreImpl/parser/kit_sub_system/c_file_kit_sub_system.json
index 2e76360574711680bfcb669fd1bce4a97e388687..7d4e0dda999bc97e9d4c890979770b8412371fa0 100644
--- a/build-tools/capi_parser/src/coreImpl/parser/kit_sub_system/c_file_kit_sub_system.json
+++ b/build-tools/capi_parser/src/coreImpl/parser/kit_sub_system/c_file_kit_sub_system.json
@@ -279,6 +279,11 @@
"kitName": "ArkGraphicsD",
"subSystem": "图形图像"
},
+ {
+ "filePath": "graphic/graphic_2d/native_drawing/drawing_text_font_descriptor.h",
+ "kitName": "ArkGraphicsD",
+ "subSystem": "图形图像"
+ },
{
"filePath": "graphic/graphic_2d/native_drawing/drawing_typeface.h",
"kitName": "ArkGraphicsD",
diff --git a/graphic/graphic_2d/native_drawing/BUILD.gn b/graphic/graphic_2d/native_drawing/BUILD.gn
index aea6e1dc4d1cfb37bb9425bf80c1ba123ca28877..9d59ff55792f9892e6ce626220f201aca213ce4f 100644
--- a/graphic/graphic_2d/native_drawing/BUILD.gn
+++ b/graphic/graphic_2d/native_drawing/BUILD.gn
@@ -50,6 +50,7 @@ ohos_ndk_headers("native_drawing_header") {
"//interface/sdk_c/graphic/graphic_2d/native_drawing/drawing_surface.h",
"//interface/sdk_c/graphic/graphic_2d/native_drawing/drawing_text_blob.h",
"//interface/sdk_c/graphic/graphic_2d/native_drawing/drawing_text_declaration.h",
+ "//interface/sdk_c/graphic/graphic_2d/native_drawing/drawing_text_font_descriptor.h",
"//interface/sdk_c/graphic/graphic_2d/native_drawing/drawing_text_typography.h",
"//interface/sdk_c/graphic/graphic_2d/native_drawing/drawing_typeface.h",
"//interface/sdk_c/graphic/graphic_2d/native_drawing/drawing_types.h",
@@ -95,6 +96,7 @@ ohos_ndk_library("libnative_drawing_ndk") {
"native_drawing/drawing_surface.h",
"native_drawing/drawing_text_blob.h",
"native_drawing/drawing_text_declaration.h",
+ "native_drawing/drawing_text_font_descriptor.h",
"native_drawing/drawing_text_typography.h",
"native_drawing/drawing_typeface.h",
"native_drawing/drawing_types.h",
diff --git a/graphic/graphic_2d/native_drawing/drawing_text_font_descriptor.h b/graphic/graphic_2d/native_drawing/drawing_text_font_descriptor.h
new file mode 100644
index 0000000000000000000000000000000000000000..eab98f37d93b0ea77f7c3f1c796c62999a5b42be
--- /dev/null
+++ b/graphic/graphic_2d/native_drawing/drawing_text_font_descriptor.h
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2021-2024 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef DRAWING_TEXT_FONT_DESCRIPTOR_H
+#define DRAWING_TEXT_FONT_DESCRIPTOR_H
+
+/**
+ * @addtogroup Drawing
+ * @{
+ *
+ * @brief Provides the font descriptor capability.
+ *
+ * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing
+ *
+ * @since 14
+ * @version 1.0
+ */
+
+/**
+ * @file drawing_text_font_descriptor.h
+ *
+ * @brief Provide the ability to provide OH_Drawing_FontDescriptor.
+ *
+ * @kit ArkGraphics2D
+ * @library libnative_drawing.so
+ * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing
+ * @since 14
+ * @version 1.0
+ */
+
+#include "drawing_text_typography.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @brief Obtain all system font descriptive symbols that match the specified font descriptor. Where the 'path'
+ * fields are not considered as valid matching values, It takes effect when the remaining fields are not
+ * default values, If all the fields of the parameters OH_Drawing_FontDescriptor are default, obtain all system
+ * font descriptors. If the match fails, return nullptr.
+ *
+ * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing
+ * @param OH_Drawing_FontDescriptor The pointer to the OH_Drawing_FontDescriptor object. It is recommended to
+ * use OH_Drawing_CreateFontDescriptor to obtain a valid OH_Drawing_FontDescriptor instance.
+ * If you create your own OH_Drawing_FontDescriptor object, ensure that fields not intended for matching are
+ * set to their default values.
+ * @param size_t Indicates the count of obtained OH_Drawing_FontDescriptor.
+ * @return Returns an array of OH_Drawing_FontDescriptor. Released through the
+ * OH_Drawing_DestroyFontDescriptors interface after use.
+ * @since 14
+ */
+OH_Drawing_FontDescriptor* OH_Drawing_MatchFontDescriptors(OH_Drawing_FontDescriptor*, size_t*);
+
+/**
+ * @brief Releases the OH_Drawing_FontDescriptor array.
+ *
+ * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing
+ * @param OH_Drawing_FontDescriptor OH_Drawing_FontDescriptor object array.
+ * @param size_t Represents the number of members of the OH_Drawing_FontDescriptor array.
+ * @since 14
+ */
+void OH_Drawing_DestroyFontDescriptors(OH_Drawing_FontDescriptor*, size_t);
+
+#ifdef __cplusplus
+}
+#endif
+/** @} */
+#endif
\ No newline at end of file
diff --git a/graphic/graphic_2d/native_drawing/libnative_drawing.ndk.json b/graphic/graphic_2d/native_drawing/libnative_drawing.ndk.json
index e81640a3fa4218b59fb9dc031eb4e7b90db2a47b..e0b55dc0332f3035c3f8e001bed9a9acf07c6b82 100644
--- a/graphic/graphic_2d/native_drawing/libnative_drawing.ndk.json
+++ b/graphic/graphic_2d/native_drawing/libnative_drawing.ndk.json
@@ -926,6 +926,14 @@
"first_introduced": "12",
"name": "OH_Drawing_DestroyFontDescriptor"
},
+ {
+ "first_introduced": "14",
+ "name": "OH_Drawing_MatchFontDescriptors"
+ },
+ {
+ "first_introduced": "14",
+ "name": "OH_Drawing_DestroyFontDescriptors"
+ },
{
"first_introduced": "12",
"name": "OH_Drawing_CreateFontParser"