From 212d4d0dcb4a20ba28208e46251933eca6de2c01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Sz=C3=BCcs?= <127139797+balazs-szucs@users.noreply.github.com> Date: Wed, 25 Jun 2025 19:53:01 +0200 Subject: [PATCH] feat: add Thai language support and corresponding font for watermarking (#3819) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Description of Changes This pull request adds support for Thai language in the watermark functionality. ### Backend updates: * [`stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/WatermarkController.java`](diffhunk://#diff-73e8448c42af57bb0549146473b5e7edc063533694813dfda7214e51005a90daR173-R175): Added a new case for "thai" in the `addTextWatermark` method to use the `NotoSansThai-Regular.ttf` font for Thai text. ### Frontend updates: * [`stirling-pdf/src/main/resources/templates/security/add-watermark.html`](diffhunk://#diff-dc75a6b50ba2a29c6cb17f0cfa65e4ffac88102d5834ea40fc9d9b3b4d00f8f3R41): Added a new option for Thai language (`ไทย`) in the language dropdown menu for watermark customization. ![image](https://github.com/user-attachments/assets/9ad3bf7f-bcc6-4f10-818e-d3e7467ab6c0) ### Sample PDF: ![image](https://github.com/user-attachments/assets/d8b569e3-9dcb-42b3-9699-67ffa8043bd3) [dummy_watermarked.pdf](https://github.com/user-attachments/files/20903700/dummy_watermarked.pdf) Closes #3810 --- ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md) (if applicable) - [x] I have performed a self-review of my own code - [x] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [x] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [x] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing) for more details. --- .../api/security/WatermarkController.java | 3 +++ .../static/fonts/NotoSansThai-Regular.ttf | Bin 0 -> 22644 bytes .../templates/security/add-watermark.html | 1 + 3 files changed, 4 insertions(+) create mode 100644 stirling-pdf/src/main/resources/static/fonts/NotoSansThai-Regular.ttf diff --git a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/WatermarkController.java b/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/WatermarkController.java index fd8f1cf8af..47a53a4f99 100644 --- a/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/WatermarkController.java +++ b/stirling-pdf/src/main/java/stirling/software/SPDF/controller/api/security/WatermarkController.java @@ -170,6 +170,9 @@ public class WatermarkController { case "chinese": resourceDir = "static/fonts/SimSun.ttf"; break; + case "thai": + resourceDir = "static/fonts/NotoSansThai-Regular.ttf"; + break; case "roman": default: resourceDir = "static/fonts/NotoSans-Regular.ttf"; diff --git a/stirling-pdf/src/main/resources/static/fonts/NotoSansThai-Regular.ttf b/stirling-pdf/src/main/resources/static/fonts/NotoSansThai-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7f72a6e14430730b12741208127d35d427975fa6 GIT binary patch literal 22644 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 T)IT6oKs-^fnIOACJg6K1o$B!8 literal 0 HcmV?d00001 diff --git a/stirling-pdf/src/main/resources/templates/security/add-watermark.html b/stirling-pdf/src/main/resources/templates/security/add-watermark.html index 950985b0ad..a556d21fc7 100644 --- a/stirling-pdf/src/main/resources/templates/security/add-watermark.html +++ b/stirling-pdf/src/main/resources/templates/security/add-watermark.html @@ -38,6 +38,7 @@ +