diff --git a/pom.xml b/pom.xml
index b5050bf..fadd49f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
2.5.6
2.11.0
- 4.3.0
+ 4.4.0
1.4.3
1.4.0
1.3.0
diff --git a/src/main/java/com/docusign/controller/eSignature/services/ResponsiveSigningService.java b/src/main/java/com/docusign/controller/eSignature/services/ResponsiveSigningService.java
index de9f932..88e8b39 100644
--- a/src/main/java/com/docusign/controller/eSignature/services/ResponsiveSigningService.java
+++ b/src/main/java/com/docusign/controller/eSignature/services/ResponsiveSigningService.java
@@ -8,10 +8,20 @@
import com.docusign.esign.model.*;
import java.io.IOException;
+import java.util.Arrays;
import java.util.Collections;
public final class ResponsiveSigningService {
//ds-snippet-start:eSign38Step2
+ private static final String TRUE = "true";
+ private static final String FALSE = "false";
+ private static final int L1_PRICE = 5;
+ private static final int L2_PRICE = 150;
+ private static final int ANCHOR_OFFSET_Y = 10;
+ private static final int ANCHOR_OFFSET_X = 20;
+ private static final String DEFAULT_FONT = "helvetica";
+ private static final String DEFAULT_FONT_SIZE = "size11";
+ private static final String ANCHOR_UNITS = "pixels";
private static final String HTML_DOCUMENT_FILE_NAME = "templates/order-form.ftl";
public static EnvelopeDefinition makeEnvelope(
String signerEmail,
@@ -22,9 +32,9 @@ public static EnvelopeDefinition makeEnvelope(
WorkArguments args
) throws IOException {
String htmlDoc = EnvelopeHelpers.createHtmlFromTemplateFile(HTML_DOCUMENT_FILE_NAME, "args", args);
- htmlDoc = htmlDoc.replace("/sn1/", "")
- .replace("/l1q/", " ")
- .replace("/l2q/", " ");;
+ htmlDoc = htmlDoc
+ .replace("/l1q/", " ")
+ .replace("/l2q/", " ");;
Signer signer = new Signer()
.email(signerEmail)
@@ -47,12 +57,53 @@ public static EnvelopeDefinition makeEnvelope(
.name("Lorem Ipsum")
.documentId("1")
.htmlDefinition(new DocumentHtmlDefinition().source(htmlDoc))));
+ signer.setTabs(createTabs());
envelope.setRecipients(EnvelopeHelpers.createRecipients(signer, cc));
envelope.setStatus(EnvelopeHelpers.ENVELOPE_STATUS_SENT);
return envelope;
}
+ private static Tabs createTabs() {
+ FormulaTab formulaForFirstNumber = createFormulaTab("/l1e/", "l1e", L1_PRICE, "l1q");
+ FormulaTab formulaForSecondNumber = createFormulaTab("/l2e/", "l2e", L2_PRICE, "l2q");
+ FormulaTab finalFormula = new FormulaTab()
+ .font(DEFAULT_FONT)
+ .bold(TRUE)
+ .fontSize(DEFAULT_FONT_SIZE)
+ .anchorString("/l3t/")
+ .anchorYOffset("-8")
+ .anchorUnits(ANCHOR_UNITS)
+ .anchorXOffset("105")
+ .tabLabel("l3t")
+ .formula("[l1e] + [l2e]")
+ .roundDecimalPlaces("0")
+ .required(TRUE)
+ .locked(TRUE)
+ .disableAutoSize(FALSE);
+
+ Tabs signerTabs = EnvelopeHelpers.createSingleSignerTab("/sn1/", ANCHOR_OFFSET_Y, ANCHOR_OFFSET_X);
+ signerTabs.formulaTabs(Arrays.asList(formulaForFirstNumber, formulaForSecondNumber, finalFormula));
+
+ return signerTabs;
+ }
+
+ private static FormulaTab createFormulaTab(String anchor, String label, int price, String numerical) {
+ return new FormulaTab()
+ .font(DEFAULT_FONT)
+ .fontSize(DEFAULT_FONT_SIZE)
+ .anchorString(anchor)
+ .anchorYOffset("-8")
+ .anchorUnits(ANCHOR_UNITS)
+ .anchorXOffset("105")
+ .tabLabel(label)
+ .formula(String.format("[%s] * {%d}", numerical, price))
+ .roundDecimalPlaces("0")
+ .required(TRUE)
+ .locked(TRUE)
+ .disableAutoSize(FALSE);
+ }
+
public static ViewUrl responsiveSigning(
EnvelopesApi envelopesApi,
String accountId,