diff --git a/src/core/xfa/html_utils.js b/src/core/xfa/html_utils.js
index 9d1ddc989..9648e3ccd 100644
--- a/src/core/xfa/html_utils.js
+++ b/src/core/xfa/html_utils.js
@@ -368,10 +368,14 @@ function createWrapper(node, html) {
}
const insetsW = insets[1] + insets[3];
const insetsH = insets[0] + insets[2];
+ const classNames = ["xfaBorder"];
+ if (isPrintOnly(node.border)) {
+ classNames.push("xfaPrintOnly");
+ }
const border = {
name: "div",
attributes: {
- class: ["xfaBorder"],
+ class: classNames,
style: {
top: `${insets[0] - widths[0] + shiftW}px`,
left: `${insets[3] - widths[3] + shiftH}px`,
@@ -460,6 +464,14 @@ function setAccess(node, classNames) {
}
}
+function isPrintOnly(node) {
+ return (
+ node.relevant.length > 0 &&
+ !node.relevant[0].excluded &&
+ node.relevant[0].viewname === "print"
+ );
+}
+
function getFonts(family, fontFinder) {
if (family.startsWith("'") || family.startsWith('"')) {
family = family.slice(1, family.length - 1);
@@ -482,6 +494,7 @@ export {
fixDimensions,
fixTextIndent,
getFonts,
+ isPrintOnly,
layoutClass,
layoutText,
measureToString,
diff --git a/src/core/xfa/template.js b/src/core/xfa/template.js
index 5eb7ed21e..ed7450263 100644
--- a/src/core/xfa/template.js
+++ b/src/core/xfa/template.js
@@ -71,6 +71,7 @@ import {
fixDimensions,
fixTextIndent,
getFonts,
+ isPrintOnly,
layoutClass,
layoutText,
measureToString,
@@ -302,6 +303,10 @@ class Area extends XFAObject {
class: ["xfaArea"],
};
+ if (isPrintOnly(this)) {
+ attributes.class.push("xfaPrintOnly");
+ }
+
if (this.name) {
attributes.xfaName = this.name;
}
@@ -1140,12 +1145,19 @@ class ContentArea extends XFAObject {
width: measureToString(this.w),
height: measureToString(this.h),
};
+
+ const classNames = ["xfaContentarea"];
+
+ if (isPrintOnly(this)) {
+ classNames.push("xfaPrintOnly");
+ }
+
return HTMLResult.success({
name: "div",
children: [],
attributes: {
style,
- class: ["xfaContentarea"],
+ class: classNames,
id: this[$uid],
},
});
@@ -1515,6 +1527,9 @@ class Draw extends XFAObject {
if (this.font) {
classNames.push("xfaFont");
}
+ if (isPrintOnly(this)) {
+ classNames.push("xfaPrintOnly");
+ }
const attributes = {
style,
@@ -2083,6 +2098,10 @@ class ExclGroup extends XFAObject {
classNames.push(cl);
}
+ if (isPrintOnly(this)) {
+ classNames.push("xfaPrintOnly");
+ }
+
attributes.style = style;
attributes.class = classNames;
@@ -2331,6 +2350,10 @@ class Field extends XFAObject {
classNames.push("xfaFont");
}
+ if (isPrintOnly(this)) {
+ classNames.push("xfaPrintOnly");
+ }
+
const attributes = {
style,
id: this[$uid],
diff --git a/web/xfa_layer_builder.css b/web/xfa_layer_builder.css
index 5dadb1199..c3706ed2d 100644
--- a/web/xfa_layer_builder.css
+++ b/web/xfa_layer_builder.css
@@ -13,6 +13,10 @@
* limitations under the License.
*/
+.xfaPrintOnly {
+ display: none;
+}
+
.xfaLayer {
position: absolute;
top: 0;