diff --git a/graphic/graphic_2d/native_drawing/drawing_text_declaration.h b/graphic/graphic_2d/native_drawing/drawing_text_declaration.h
index 9a324c807a683863d649a9e7bc6ec5139a59f919..9a523e756f69d486c2eb68d1ff4fec7d8ab0c0f6 100644
--- a/graphic/graphic_2d/native_drawing/drawing_text_declaration.h
+++ b/graphic/graphic_2d/native_drawing/drawing_text_declaration.h
@@ -60,6 +60,14 @@ typedef struct OH_Drawing_FontCollection OH_Drawing_FontCollection;
*/
typedef struct OH_Drawing_Typography OH_Drawing_Typography;
+/**
+ * @brief Defines an OH_Drawing_LineTypography, which is used to perform line layout.
+ *
+ * @since 13
+ * @version 1.0
+ */
+typedef struct OH_Drawing_LineTypography OH_Drawing_LineTypography;
+
/**
* @brief Defines an OH_Drawing_TextStyle, which is used to manage text colors and decorations.
*
diff --git a/graphic/graphic_2d/native_drawing/drawing_text_typography.h b/graphic/graphic_2d/native_drawing/drawing_text_typography.h
index d821c385580bc0c2fe13343d5bb52928b2a6adc0..d9b81c7bba8fd6c7c0fff66ae4e52a88376fe91d 100644
--- a/graphic/graphic_2d/native_drawing/drawing_text_typography.h
+++ b/graphic/graphic_2d/native_drawing/drawing_text_typography.h
@@ -2753,6 +2753,55 @@ void OH_Drawing_TypographyDestroyTextBox(OH_Drawing_TextBox*);
void OH_Drawing_SetTextShadow(OH_Drawing_TextShadow* shadow, uint32_t color, OH_Drawing_Point* offset,
double blurRadius);
+/**
+ * @brief Creates an OH_Drawing_LineTypography object.
+ *
+ * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing
+ * @param OH_Drawing_TypographyCreate Indicates the pointer to an OH_Drawing_TypographyCreate object.
+ * @return Returns the pointer to the OH_Drawing_LineTypography object created.
+ * @since 13
+ * @version 1.0
+ */
+OH_Drawing_LineTypography* OH_Drawing_CreateLineTypography(OH_Drawing_TypographyCreate* handler);
+
+/**
+ * @brief Releases the memory occupied by an OH_Drawing_LineTypography object.
+ *
+ * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing
+ * @param OH_Drawing_LineTypography Indicates the pointer to an OH_Drawing_LineTypography object.
+ * @since 13
+ * @version 1.0
+ */
+void OH_Drawing_DestroyLineTypography(OH_Drawing_LineTypography* lineTypography);
+
+/**
+ * @brief Calculate the line breakpoint based on the width provided.
+ *
+ * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing
+ * @param OH_Drawing_TypographyCreate Indicates the pointer to an OH_Drawing_TypographyCreate object.
+ * @param startIndex Indicates the starting point for the line-break calculations.
+ * @param width Indicates the requested line-break width.
+ * @return Returns the count of the characters from startIndex that would cause the line break.
+ * @since 13
+ * @version 1.0
+ */
+size_t OH_Drawing_LineTypographyGetLineBreak(OH_Drawing_LineTypography* lineTypography,
+ size_t startIndex, double width);
+
+/**
+ * @brief Creates a text line object based on the text range provided.
+ *
+ * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing
+ * @param OH_Drawing_LineTypography Indicates the pointer to an OH_Drawing_TypographyCreate object.
+ * @param startIndex Indicates the starting index of the text range.
+ * @param count Indicates the characters count of the text range. If the value is set to 0, return nullptr.
+ * @return Returns the pointer to the OH_Drawing_TextLine object created.
+ * @since 13
+ * @version 1.0
+ */
+OH_Drawing_TextLine* OH_Drawing_LineTypographyCreateLine(OH_Drawing_LineTypography* lineTypography,
+ size_t startIndex, size_t count);
+
#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..867c28519bbffe4e649ad7b70dab6c1103b65473 100644
--- a/graphic/graphic_2d/native_drawing/libnative_drawing.ndk.json
+++ b/graphic/graphic_2d/native_drawing/libnative_drawing.ndk.json
@@ -1465,5 +1465,21 @@
{
"first_introduced": "13",
"name":"OH_Drawing_RecordCmdDestroy"
+ },
+ {
+ "first_introduced": "13",
+ "name": "OH_Drawing_CreateLineTypography"
+ },
+ {
+ "first_introduced": "13",
+ "name": "OH_Drawing_DestroyLineTypography"
+ },
+ {
+ "first_introduced": "13",
+ "name": "OH_Drawing_LineTypographyGetLineBreak"
+ },
+ {
+ "first_introduced": "13",
+ "name": "OH_Drawing_LineTypographyCreateLine"
}
]
\ No newline at end of file