From 970f3ea37b7d6ac5e73d3af7003a0d774b46ca41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Antonio=20Arg=C3=BCelles=20Gonz=C3=A1lez?= Date: Sun, 2 Nov 2025 09:40:55 -0600 Subject: [PATCH] [#4262] Added date and time to a stamp (#4431) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Description of Changes Changed `addTextStamp` method to automatically add time and date when stamping a file Closes #4262 --- ## Checklist ### General - [✓] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [✓] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/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/devGuide/HowToAddNewLanguage.md) (if applicable) - [✓] I have performed a self-review of my own code - [✓] 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/devGuide/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing) for more details. Co-authored-by: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> --- .../SPDF/controller/api/misc/StampController.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java index 24b9e84e1..7539728cf 100644 --- a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java +++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java @@ -7,6 +7,9 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.time.LocalDate; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; import java.util.List; import javax.imageio.ImageIO; @@ -247,6 +250,17 @@ public class StampController { calculatePositionY( pageSize, position, calculateTextCapHeight(font, fontSize), margin); } + + String currentDate = LocalDate.now().toString(); + String currentTime = LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm:ss")); + + int pageCount = document.getNumberOfPages(); + + String processedStampText = stampText + .replace("@date", currentDate) + .replace("@time", currentTime) + .replace("@page_count", String.valueOf(pageCount)); + // Split the stampText into multiple lines String[] lines = RegexPatternUtils.getInstance().getEscapedNewlinePattern().split(stampText);