From ae7eae34d925b5fae7526ba9507c46de99bb6b05 Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Wed, 6 May 2026 15:06:55 +0330 Subject: [PATCH] fix text location --- src/pages/viewer/components/BookPage.tsx | 9 ++++++++- src/pages/viewer/utils/dataTransformer.ts | 4 ++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/pages/viewer/components/BookPage.tsx b/src/pages/viewer/components/BookPage.tsx index 2df7b9e..55b12df 100644 --- a/src/pages/viewer/components/BookPage.tsx +++ b/src/pages/viewer/components/BookPage.tsx @@ -74,17 +74,24 @@ const BookPage = forwardRef( // برای text، opacity در رنگ اعمال می‌شود، پس باید opacity را از baseStyle حذف کنیم // eslint-disable-next-line @typescript-eslint/no-unused-vars const { opacity, ...textBaseStyle } = baseStyle; + const textWidth = obj.width ? obj.width * scale : undefined; + const textLeft = ((obj.x || 0) - (obj.width || 0)) * scale; return (
diff --git a/src/pages/viewer/utils/dataTransformer.ts b/src/pages/viewer/utils/dataTransformer.ts index d406edb..b483d83 100644 --- a/src/pages/viewer/utils/dataTransformer.ts +++ b/src/pages/viewer/utils/dataTransformer.ts @@ -15,6 +15,8 @@ type ViewerDataPage = { fontSize?: number; fontFamily?: string; fontWeight?: string; + lineHeight?: number; + textAlign?: "left" | "center" | "right"; fill?: string; stroke?: string; strokeWidth?: number; @@ -89,6 +91,8 @@ export function transformViewerDataToPages(data: ViewerData): PageData[] { if (obj.fontWeight !== undefined) baseObject.fontWeight = obj.fontWeight; if (obj.letterSpacing !== undefined) baseObject.letterSpacing = obj.letterSpacing; + if (obj.lineHeight !== undefined) baseObject.lineHeight = obj.lineHeight; + if (obj.textAlign !== undefined) baseObject.textAlign = obj.textAlign; // انواع خاص objectها if (obj.type === "rectangle" && obj.shapeType) {