diff options
author | Simon Steiner <ssteiner@apache.org> | 2024-09-18 13:16:21 +0100 |
---|---|---|
committer | Simon Steiner <ssteiner@apache.org> | 2024-09-18 13:16:21 +0100 |
commit | 7fcf3ca57185dac5fbf30874a64e5a047340d402 (patch) | |
tree | 56ae0056cacaee7689175b5eb4b634327b1d1051 /fop-core/src/main/java | |
parent | deb2c2cbc18790ed8ad17303f841a178441e1a6a (diff) | |
download | xmlgraphics-fop-7fcf3ca57185dac5fbf30874a64e5a047340d402.tar.gz xmlgraphics-fop-7fcf3ca57185dac5fbf30874a64e5a047340d402.zip |
FOP-3207: Add warning when different pdf languages are used
Diffstat (limited to 'fop-core/src/main/java')
3 files changed, 20 insertions, 0 deletions
diff --git a/fop-core/src/main/java/org/apache/fop/pdf/PDFFactory.java b/fop-core/src/main/java/org/apache/fop/pdf/PDFFactory.java index 40370f705..12a6c3e09 100644 --- a/fop-core/src/main/java/org/apache/fop/pdf/PDFFactory.java +++ b/fop-core/src/main/java/org/apache/fop/pdf/PDFFactory.java @@ -1707,4 +1707,8 @@ public class PDFFactory { public void setEventBroadcaster(EventBroadcaster eventBroadcaster) { this.eventBroadcaster = eventBroadcaster; } + + public EventBroadcaster getEventBroadcaster() { + return eventBroadcaster; + } } diff --git a/fop-core/src/main/java/org/apache/fop/pdf/PDFRoot.java b/fop-core/src/main/java/org/apache/fop/pdf/PDFRoot.java index b230ad879..7b6038467 100644 --- a/fop-core/src/main/java/org/apache/fop/pdf/PDFRoot.java +++ b/fop-core/src/main/java/org/apache/fop/pdf/PDFRoot.java @@ -23,6 +23,7 @@ import java.io.IOException; import java.io.OutputStream; import java.util.Locale; +import org.apache.fop.render.pdf.PDFEventProducer; import org.apache.fop.util.LanguageTags; /** @@ -287,6 +288,11 @@ public class PDFRoot extends PDFDictionary { } private void setLanguage(String lang) { + Object oldLang = get("Lang"); + if (oldLang != null && !"x-unknown".equals(oldLang) && !lang.equals(oldLang)) { + PDFEventProducer eventProducer = PDFEventProducer.Provider.get(document.getFactory().getEventBroadcaster()); + eventProducer.languageChanged(this, oldLang, lang); + } put("Lang", lang); } diff --git a/fop-core/src/main/java/org/apache/fop/render/pdf/PDFEventProducer.java b/fop-core/src/main/java/org/apache/fop/render/pdf/PDFEventProducer.java index 24d0eb0cf..b78b472c5 100644 --- a/fop-core/src/main/java/org/apache/fop/render/pdf/PDFEventProducer.java +++ b/fop-core/src/main/java/org/apache/fop/render/pdf/PDFEventProducer.java @@ -90,4 +90,14 @@ public interface PDFEventProducer extends EventProducer { * @event.severity ERROR */ void unpairedSurrogate(Object source); + + /** + * The language was changed between pages + * + * @param source the event source + * @param oldLang current language + * @param newLang new language + * @event.severity WARN + */ + void languageChanged(Object source, Object oldLang, String newLang); } |