diff --git a/graphic/graphic_2d/native_drawing/drawing_font.h b/graphic/graphic_2d/native_drawing/drawing_font.h
index 38ea644f359e53892c949eb6f499df748d079975..10c34d837a7e2a62c3c20e019e134b33d7061c71 100644
--- a/graphic/graphic_2d/native_drawing/drawing_font.h
+++ b/graphic/graphic_2d/native_drawing/drawing_font.h
@@ -497,6 +497,25 @@ typedef struct OH_Drawing_Font_Metrics {
*/
float OH_Drawing_FontGetMetrics(OH_Drawing_Font*, OH_Drawing_Font_Metrics*);
+/**
+ * @brief Get the text outline path.
+ *
+ * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing
+ * @param font Indicates the pointer to an OH_Drawing_Font object.
+ * @param text Indicates the character storage encoded with text encoding.
+ * @param byteLength Indicates the text length in bytes.
+ * @param encoding OH_Drawing_TextEncoding Indicates the text encoding.
+ * @param x Indicates x coordinates of the text.
+ * @param y Indicates y coordinates of the text.
+ * @param path OH_Drawing_Path The path object, returned to the caller.
+ * @return Returns the error code.
+ * Returns {@link OH_DRAWING_SUCCESS} if the operation is successful.
+ * Returns {@link OH_DRAWING_ERROR_INVALID_PARAMETER} if any of font, text or path is nullptr.
+ * @since 14
+ */
+OH_Drawing_ErrorCode OH_Drawing_FontGetTextPath(const OH_Drawing_Font* font, const void* text, size_t byteLength,
+ OH_Drawing_TextEncoding encoding, float x, float y, OH_Drawing_Path* path);
+
#ifdef __cplusplus
}
#endif
diff --git a/graphic/graphic_2d/native_drawing/libnative_drawing.ndk.json b/graphic/graphic_2d/native_drawing/libnative_drawing.ndk.json
index 9c5b0d26911786bccd36ed4d9437843b3385b714..6ec44ae8f726d242ba9fd2939e501dd0b9afed8d 100644
--- a/graphic/graphic_2d/native_drawing/libnative_drawing.ndk.json
+++ b/graphic/graphic_2d/native_drawing/libnative_drawing.ndk.json
@@ -1465,5 +1465,9 @@
{
"first_introduced": "13",
"name":"OH_Drawing_RecordCmdDestroy"
+ },
+ {
+ "first_introduced": "14",
+ "name":"OH_Drawing_FontGetTextPath"
}
]
\ No newline at end of file