Skip to content

Commit becad90

Browse files
committed
Use font from /DA for button
Actually /DA has no any sense for button. But let's keep this behaviour as backward compatibility. DEVSIX-1916
1 parent e345553 commit becad90

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

forms/src/main/java/com/itextpdf/forms/fields/AppearanceResources.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,20 @@ class AppearanceResources extends PdfResources {
2424

2525
private Map<PdfIndirectReference, PdfName> drFonts = new HashMap<>();
2626

27+
AppearanceResources() {
28+
super();
29+
}
30+
2731
AppearanceResources(PdfDictionary pdfObject) {
2832
super(pdfObject);
2933
}
3034

31-
void addFontFromDefaultResources(PdfName name, PdfFont font) {
35+
AppearanceResources addFontFromDefaultResources(PdfName name, PdfFont font) {
3236
if (name != null && font != null && font.getPdfObject().getIndirectReference() != null) {
3337
//So, most likely it's a document PdfFont
3438
drFonts.put(font.getPdfObject().getIndirectReference(), name);
3539
}
40+
return this;
3641
}
3742

3843
@Override

forms/src/main/java/com/itextpdf/forms/fields/PdfFormField.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1665,7 +1665,7 @@ public PdfString getDefaultAppearance() {
16651665
*/
16661666
public PdfFormField setDefaultAppearance(String defaultAppearance) {
16671667
PdfString prev = getDefaultAppearance();
1668-
if (prev == null || !defaultAppearance.trim().equals(prev.getValue().trim())) {
1668+
if (prev == null || !defaultAppearance.trim().equals(prev.getValue().trim()) || true) {
16691669
byte[] b = defaultAppearance.getBytes(StandardCharsets.UTF_8);
16701670
int len = b.length;
16711671
for (int k = 0; k < len; ++k) {
@@ -3183,7 +3183,8 @@ protected void drawPdfA2CheckAppearance(float width, float height, String value,
31833183
protected PdfFormXObject drawPushButtonAppearance(float width, float height, String text,
31843184
PdfFont font, PdfName fontName, float fontSize) {
31853185
PdfStream stream = (PdfStream) new PdfStream().makeIndirect(getDocument());
3186-
PdfCanvas canvas = new PdfCanvas(stream, new PdfResources(), getDocument());
3186+
AppearanceResources resources = new AppearanceResources().addFontFromDefaultResources(fontName, font);
3187+
PdfCanvas canvas = new PdfCanvas(stream, resources, getDocument());
31873188

31883189
AppearanceXObject xObject = new AppearanceXObject(new Rectangle(0, 0, width, height));
31893190
drawBorder(canvas, xObject, width, height);
@@ -3198,7 +3199,7 @@ protected PdfFormXObject drawPushButtonAppearance(float width, float height, Str
31983199
} else {
31993200
drawButton(canvas, 0, 0, width, height, text, font, fontSize);
32003201
xObject.addFontFromDR(fontName, font);
3201-
setDefaultAppearance(generateDefaultAppearanceString(font, fontSize, color, new PdfResources()));
3202+
setDefaultAppearance(generateDefaultAppearanceString(font, fontSize, color, resources));
32023203
xObject.getResources().addFont(getDocument(), font);
32033204
}
32043205
xObject.getPdfObject().getOutputStream().writeBytes(stream.getBytes());

0 commit comments

Comments
 (0)