Skip to content
Snippets Groups Projects
Commit eb083472 authored by srosse's avatar srosse
Browse files

Merge remote-tracking branch 'origin/OpenOLAT_15.3' into OpenOLAT_15.4

parents 690f1ab4 be46012f
No related branches found
No related tags found
No related merge requests found
...@@ -218,9 +218,14 @@ public class PdfDocument { ...@@ -218,9 +218,14 @@ public class PdfDocument {
} }
public static String cleanString(String string) { public static String cleanString(String string) {
return string.replace('\n', ' ') String text = string.replace('\n', ' ')
.replace('\r', ' ') .replace('\r', ' ')
.replace('\t', ' ') .replace('\t', ' ');
return cleanCharacters(text);
}
public static String cleanCharacters(String string) {
return string.replace("\u00AD", "")
.replace('\u00A0', ' ') .replace('\u00A0', ' ')
.replace('\u2212', '-'); .replace('\u2212', '-');
} }
...@@ -230,6 +235,7 @@ public class PdfDocument { ...@@ -230,6 +235,7 @@ public class PdfDocument {
try { try {
stream.showText(cleanedText); stream.showText(cleanedText);
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
log.warn("Cannot show PDF text: {}", text, e);
stream.showText(Normalizer.normalize(cleanedText, Normalizer.Form.NFKD) stream.showText(Normalizer.normalize(cleanedText, Normalizer.Form.NFKD)
.replaceAll("\\p{InCombiningDiacriticalMarks}+","")); .replaceAll("\\p{InCombiningDiacriticalMarks}+",""));
} }
......
...@@ -25,6 +25,7 @@ import java.io.FileOutputStream; ...@@ -25,6 +25,7 @@ import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.text.Normalizer;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
...@@ -41,6 +42,7 @@ import org.olat.core.id.UserConstants; ...@@ -41,6 +42,7 @@ import org.olat.core.id.UserConstants;
import org.olat.core.logging.Tracing; import org.olat.core.logging.Tracing;
import org.olat.core.util.Formatter; import org.olat.core.util.Formatter;
import org.olat.core.util.StringHelper; import org.olat.core.util.StringHelper;
import org.olat.core.util.pdf.PdfDocument;
import org.olat.course.assessment.AssessmentHelper; import org.olat.course.assessment.AssessmentHelper;
import org.olat.course.certificate.CertificateTemplate; import org.olat.course.certificate.CertificateTemplate;
import org.olat.course.certificate.CertificatesManager; import org.olat.course.certificate.CertificatesManager;
...@@ -274,7 +276,14 @@ public class CertificatePDFFormWorker { ...@@ -274,7 +276,14 @@ public class CertificatePDFFormWorker {
if (value == null) { if (value == null) {
field.setValue(""); field.setValue("");
} else { } else {
field.setValue(value); value = PdfDocument.cleanCharacters(value);
try {
field.setValue(value);
} catch (IllegalArgumentException e) {
log.warn("Cannot set PDF field value: {}", value, e);
field.setValue(Normalizer.normalize(value, Normalizer.Form.NFKD)
.replaceAll("\\p{InCombiningDiacriticalMarks}+",""));
}
} }
field.setReadOnly(true); field.setReadOnly(true);
......
...@@ -253,7 +253,7 @@ public class CheckListBoxListEditController extends FormBasicController { ...@@ -253,7 +253,7 @@ public class CheckListBoxListEditController extends FormBasicController {
Boolean sum = (Boolean)config.get(CheckListCourseNode.CONFIG_KEY_PASSED_SUM_CHECKBOX); Boolean sum = (Boolean)config.get(CheckListCourseNode.CONFIG_KEY_PASSED_SUM_CHECKBOX);
Integer cut = (Integer)config.get(CheckListCourseNode.CONFIG_KEY_PASSED_SUM_CUTVALUE); Integer cut = (Integer)config.get(CheckListCourseNode.CONFIG_KEY_PASSED_SUM_CUTVALUE);
if (sum.booleanValue() && cut.intValue() > list.getNumOfCheckbox()) { if ((sum != null && sum.booleanValue()) && (cut != null && cut.intValue() > list.getNumOfCheckbox())) {
config.set(CheckListCourseNode.CONFIG_KEY_PASSED_SUM_CUTVALUE, Integer.valueOf(list.getNumOfCheckbox())); config.set(CheckListCourseNode.CONFIG_KEY_PASSED_SUM_CUTVALUE, Integer.valueOf(list.getNumOfCheckbox()));
showWarning("error.cut.adjusted", new String[] {String.valueOf(list.getNumOfCheckbox())}); showWarning("error.cut.adjusted", new String[] {String.valueOf(list.getNumOfCheckbox())});
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment