-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcreatepdf-sr.js
More file actions
110 lines (89 loc) · 2.7 KB
/
createpdf-sr.js
File metadata and controls
110 lines (89 loc) · 2.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
const hummus = require("hummus");
const request = require("superagent");
const docoutput = "document.pdf";
//Start Hummus pdf to create a specific document output
const pdfWriter = hummus.createWriter(__dirname + `/output/${docoutput}`, {
version: hummus.ePDFVersion14,
});
//Set up page configuration:
const page = pdfWriter.createPage(0, 0, 595, 842);
const cxt = pdfWriter.startPageContentContext(page);
//black color
const textOptionsBlack = {
font: pdfWriter.getFontForFile(__dirname + "/fonts/arial.ttf"),
size: 14,
colorspace: "gray",
color: 0x00,
underline: true,
};
//white color
const textOptionsWhite = {
font: pdfWriter.getFontForFile(__dirname + "/fonts/arial.ttf"),
size: 14,
colorspace: "gray",
color: 0xFFFFFF,
underline: true,
};
// writeText
cxt
.writeText("Please sign here:", 75, 805, textOptionsBlack)
.writeText("[[s|1]]", 75, 780, textOptionsWhite)
.writeText(
"Customer name:",
370,
805,
textOptionsBlack
)
.writeText("[[t|1| id: contact_name]]", 370, 780, textOptionsWhite)
.writeText("Do you agree with this contract?", 370, 400, textOptionsBlack)
.writeText("[[c|1| id: checkbox1]]", 370, 380, textOptionsWhite)
//Create 4 pages when: const page = pdfWriter.createPage();
// page.mediaBox = [0, 0, 595, 842];
// for (var i = 0; i < 4; ++i) {
// pdfWriter.writePage(page);
// }
pdfWriter.writePage(page);
pdfWriter.end();
console.log("Document Successfully Created!");
console.log("Creating a SignRequest...");
//Send SignRequest:
const baseUrl = "https://<your_team>.signrequest.com/api/v1";
//base 64 doc
const fs = require("fs");
const buffer = Buffer.from(__dirname + `/output/${docoutput}`, "binary");
const dataFile = fs.readFileSync(buffer);
const pdf = dataFile.toString("base64");
console.log("Output document encoded to base64. \n")
//Data based on /signrequest-quick-create/ for /documents/ + /signrequests/ change the code below:
const data = {
file_from_content: pdf,
file_from_content_name: __dirname + `/output/${docoutput}`,
name: "demo_document.pdf",
signers: [
{
email: "name+1@provider.com",
order: 1,
},
],
from_email: "name@provider.com",
message: "Hi, \n \nPlease sign the document below. \nBest regards",
who: "o",
subject: "Document",
prefill_tags: [
{ external_id: "contact_name", text: "Name" },
{ external_id: "checkbox1", checkbox_value: true },
],
};
const Token = "Token PASTE_YOUR_TOKEN_HERE"
const createSignRequest = () => {
request
.post(`${baseUrl}/signrequest-quick-create/`)
//Prod
.set("Authorization", Token)
.send(data)
.then((response) => {
console.log("Response: ", response.body);
})
.catch(console.error);
};
createSignRequest();