Skip to content

Commit 324f24c

Browse files
author
DevOps
committed
Copy from IronPolyglot 2025-07-24
1 parent 232f5ba commit 324f24c

File tree

12 files changed

+94
-35
lines changed

12 files changed

+94
-35
lines changed

IronPdf.SmokeTests/src/test/java/com/ironsoftware/ironpdf/MetadataTests.java

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
import org.junit.jupiter.api.Assertions;
55
import org.junit.jupiter.api.Test;
66

7+
import java.time.LocalDateTime;
8+
import java.time.ZoneOffset;
9+
import java.time.ZonedDateTime;
710
import java.io.IOException;
811

912
public class MetadataTests extends TestBase {
@@ -19,33 +22,36 @@ public final void GetSetMetadataTest() throws IOException {
1922
Assertions.assertEquals("PDFium", metadataManager.getCreator());
2023
AssertNullOrEmpty(metadataManager.getKeywords());
2124
AssertNullOrEmpty(metadataManager.getAnyMetadata("Custom"));
22-
// TODO Uncomment below after fixed
23-
// AssertNullOrEmpty(metadataManager.getModifiedDate());
25+
AssertNullOrEmpty(metadataManager.getModifiedDate());
2426
AssertNullOrEmpty(metadataManager.getProducer());
2527
AssertNullOrEmpty(metadataManager.getSubject());
2628
AssertNullOrEmpty(metadataManager.getTitle());
2729

30+
// Create a ZonedDateTime for July 23, 2025, at 10:30 AM in the +07:00 timezone.
31+
ZonedDateTime date = ZonedDateTime.of(
32+
LocalDateTime.of(2025, 7, 23, 10, 30, 0),
33+
ZoneOffset.ofHours(7)
34+
);
35+
2836
metadataManager.setAuthor("1");
29-
metadataManager.setCreationDate("1");
37+
metadataManager.setCreationDate(date);
3038
metadataManager.setCreator("1");
3139
metadataManager.setKeywords("1");
3240
metadataManager.setAnyMetadata("Custom", "1");
33-
metadataManager.setModifiedDate("1");
41+
metadataManager.setModifiedDate(date);
3442
metadataManager.setProducer("1");
3543
metadataManager.setSubject("1");
3644
metadataManager.setTitle("1");
3745

3846
Assertions.assertEquals("1", metadataManager.getAuthor());
39-
Assertions.assertEquals("1", metadataManager.getCreationDate());
47+
Assertions.assertEquals("D:20250723103000+07'00'", metadataManager.getCreationDate());
4048
Assertions.assertEquals("1", metadataManager.getCreator());
4149
Assertions.assertEquals("1", metadataManager.getKeywords());
4250
Assertions.assertEquals("1", metadataManager.getAnyMetadata("Custom"));
43-
// TODO Uncomment below after fixed
44-
// Assertions.assertEquals("1", metadataManager.getModifiedDate());
51+
Assertions.assertEquals("D:20250723103000+07'00'", metadataManager.getModifiedDate());
4552
Assertions.assertEquals("1", metadataManager.getProducer());
4653
Assertions.assertEquals("1", metadataManager.getSubject());
4754
Assertions.assertEquals("1", metadataManager.getAuthor());
4855
Assertions.assertEquals("1", metadataManager.getTitle());
4956
}
50-
5157
}

ironpdf-cloud/patch/src/main/java/com/ironsoftware/ironpdf/internal/staticapi/Setting_Api.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public final class Setting_Api {
1919

2020
public static IronPdfEngineConnection connectionMode = IronPdfEngineConnection.configure().withOfficialCloud();
2121

22-
public static final String IRON_PDF_ENGINE_VERSION = "2025.6.5";
22+
public static final String IRON_PDF_ENGINE_VERSION = "2025.7.17";
2323

2424
public static int ironPdfEngineTimeout = 120;
2525

ironpdf-engine-pack/ironpdf-engine-linux-x64/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@
107107
<maven.compiler.source>8</maven.compiler.source>
108108
<maven.compiler.target>8</maven.compiler.target>
109109
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
110-
<ironpdf.engine.version>2025.6.5</ironpdf.engine.version>
110+
<ironpdf.engine.version>2025.7.17</ironpdf.engine.version>
111111
</properties>
112112

113113
<build>

ironpdf-engine-pack/ironpdf-engine-macos-arm64/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@
107107
<maven.compiler.source>8</maven.compiler.source>
108108
<maven.compiler.target>8</maven.compiler.target>
109109
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
110-
<ironpdf.engine.version>2025.6.5</ironpdf.engine.version>
110+
<ironpdf.engine.version>2025.7.17</ironpdf.engine.version>
111111
</properties>
112112

113113
<build>

ironpdf-engine-pack/ironpdf-engine-macos-x64/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@
107107
<maven.compiler.source>8</maven.compiler.source>
108108
<maven.compiler.target>8</maven.compiler.target>
109109
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
110-
<ironpdf.engine.version>2025.6.5</ironpdf.engine.version>
110+
<ironpdf.engine.version>2025.7.17</ironpdf.engine.version>
111111
</properties>
112112

113113
<build>

ironpdf-engine-pack/ironpdf-engine-windows-x64/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@
107107
<maven.compiler.source>8</maven.compiler.source>
108108
<maven.compiler.target>8</maven.compiler.target>
109109
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
110-
<ironpdf.engine.version>2025.6.5</ironpdf.engine.version>
110+
<ironpdf.engine.version>2025.7.17</ironpdf.engine.version>
111111
</properties>
112112

113113
<build>

ironpdf-engine-pack/ironpdf-engine-windows-x86/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@
107107
<maven.compiler.source>8</maven.compiler.source>
108108
<maven.compiler.target>8</maven.compiler.target>
109109
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
110-
<ironpdf.engine.version>2025.6.5</ironpdf.engine.version>
110+
<ironpdf.engine.version>2025.7.17</ironpdf.engine.version>
111111
</properties>
112112

113113
<build>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
package com.ironsoftware.ironpdf.internal.staticapi;
22
class BuildInfo {
3-
static final String BUILD_TIMESTAMP = "07/09/2025";
3+
static final String BUILD_TIMESTAMP = "10/16/2024";
44
}

ironpdf/src/main/java/com/ironsoftware/ironpdf/internal/staticapi/Setting_Api.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public final class Setting_Api {
1919

2020
public static IronPdfEngineConnection connectionMode = IronPdfEngineConnection.configure().withSubprocess();
2121

22-
public static final String IRON_PDF_ENGINE_VERSION = "2025.6.5";
22+
public static final String IRON_PDF_ENGINE_VERSION = "2025.7.17";
2323

2424
public static int ironPdfEngineTimeout = 120;
2525

ironpdf/src/main/java/com/ironsoftware/ironpdf/metadata/MetadataManager.java

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import com.ironsoftware.ironpdf.internal.staticapi.InternalPdfDocument;
55
import com.ironsoftware.ironpdf.internal.staticapi.Metadata_Api;
66

7+
import java.time.ZonedDateTime;
8+
import java.time.format.DateTimeFormatter;
79
/**
810
* Class used to read and edit MetaData in a {@link com.ironsoftware.ironpdf.PdfDocument}.
911
* <p> See: {@link com.ironsoftware.ironpdf.PdfDocument#getMetadata()} </p>
@@ -61,7 +63,7 @@ public void setAnyMetadata(String key, String value) {
6163
}
6264

6365
/**
64-
* Gets the PDF file creation DateTime.
66+
* Gets the PDF file creation DateTime
6567
*
6668
* @return the creation date
6769
*/
@@ -70,20 +72,20 @@ public String getCreationDate() {
7072
}
7173

7274
/**
73-
* Sets the PDF file creation DateTime.
75+
* Sets the PDF file creation ZonedDateTime.
7476
*
7577
* @param value the value
7678
*/
77-
public void setCreationDate(String value) {
78-
setAnyMetadata("CreationDate", value);
79+
public void setCreationDate(ZonedDateTime value) {
80+
setAnyMetadata("CreationDate", ConvertZonedDateTimeToPdfDateFormat(value));
7981
}
8082

8183
/**
8284
* Gets the PDF file last-modified DateTime.
8385
*
8486
* @return the modified date
8587
*/
86-
public String setModifiedDate() {
88+
public String getModifiedDate() {
8789
return getAnyMetadata("ModDate");
8890
}
8991

@@ -92,8 +94,8 @@ public String setModifiedDate() {
9294
*
9395
* @param value the value
9496
*/
95-
public void setModifiedDate(String value) {
96-
setAnyMetadata("ModDate", value);
97+
public void setModifiedDate(ZonedDateTime value) {
98+
setAnyMetadata("ModDate", ConvertZonedDateTimeToPdfDateFormat(value));
9799
}
98100

99101
/**
@@ -192,6 +194,28 @@ public void setTitle(String value) {
192194
setAnyMetadata("Title", value);
193195
}
194196

197+
/**
198+
* Convert ZonedDateTime object to date format defined in the PDF specification (ISO 32000).
199+
* For example, D:20250724131600+07'00'.
200+
*
201+
* @param value the value
202+
*/
203+
private String ConvertZonedDateTimeToPdfDateFormat(ZonedDateTime value) {
204+
if (value == null) {
205+
return "";
206+
}
207+
DateTimeFormatter baseFormatter = DateTimeFormatter.ofPattern("'D:'yyyyMMddHHmmssxxx");
208+
String almostCorrectFormat = value.format(baseFormatter);
209+
210+
int lastColonIndex = almostCorrectFormat.lastIndexOf(':');
211+
String finalPdfDateFormat = new StringBuilder(almostCorrectFormat)
212+
.replace(lastColonIndex, lastColonIndex + 1, "'")
213+
.append("'")
214+
.toString();
215+
216+
return finalPdfDateFormat;
217+
}
218+
195219
/**
196220
* Method for removing Metadata property by its name.
197221
*

0 commit comments

Comments
 (0)