@aaqu/node-red-aaqu-pdf 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/publish.yml +67 -0
- package/nodes/pdf-add-page.html +53 -0
- package/nodes/pdf-add-page.js +29 -0
- package/nodes/pdf-create.html +27 -0
- package/nodes/pdf-create.js +25 -0
- package/nodes/pdf-draw-text.html +67 -0
- package/nodes/pdf-draw-text.js +45 -0
- package/{pdf-get-page.html → nodes/pdf-get-page.html} +5 -6
- package/{pdf-get-page.js → nodes/pdf-get-page.js} +1 -1
- package/nodes/pdf-save.html +27 -0
- package/nodes/pdf-save.js +25 -0
- package/{pdf-to-img.html → nodes/pdf-to-img.html} +10 -11
- package/{pdf-to-img.js → nodes/pdf-to-img.js} +3 -3
- package/package.json +8 -5
- package/img/example.png +0 -0
- package/img/example2.png +0 -0
- package/img/node-pdf-get-page.png +0 -0
- package/img/node-pdf-to-img.png +0 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
name: Publish NPM package
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
publish:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v2
|
|
13
|
+
with:
|
|
14
|
+
fetch-depth: 0
|
|
15
|
+
|
|
16
|
+
- name: Setup Node.js
|
|
17
|
+
uses: actions/setup-node@v2
|
|
18
|
+
with:
|
|
19
|
+
node-version: '20'
|
|
20
|
+
registry-url: 'https://registry.npmjs.org'
|
|
21
|
+
|
|
22
|
+
# - name: Setup pnpm
|
|
23
|
+
# run: npm install -g pnpm
|
|
24
|
+
#
|
|
25
|
+
# - name: Install dependencies
|
|
26
|
+
# run: pnpm install
|
|
27
|
+
#
|
|
28
|
+
# - name: Test
|
|
29
|
+
# run: pnpm test
|
|
30
|
+
|
|
31
|
+
- name: Check the version
|
|
32
|
+
id: check
|
|
33
|
+
run: |
|
|
34
|
+
CURRENT_VERSION=$(jq -r .version package.json)
|
|
35
|
+
echo "Current version: $CURRENT_VERSION"
|
|
36
|
+
LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0")
|
|
37
|
+
echo "Latest tag: $LATEST_TAG"
|
|
38
|
+
|
|
39
|
+
LATEST_VERSION=${LATEST_TAG#v}
|
|
40
|
+
|
|
41
|
+
if [ "$LATEST_VERSION" != "$CURRENT_VERSION" ];
|
|
42
|
+
then
|
|
43
|
+
echo "Version changed"
|
|
44
|
+
echo "version_changed=true" >> $GITHUB_OUTPUT
|
|
45
|
+
echo "new_version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
|
|
46
|
+
else
|
|
47
|
+
echo "Version not changed"
|
|
48
|
+
echo "version_changed=false" >> $GITHUB_OUTPUT
|
|
49
|
+
fi
|
|
50
|
+
|
|
51
|
+
# - name: Build
|
|
52
|
+
# run: pnpm build
|
|
53
|
+
# if: steps.check.outputs.version_changed == 'true'
|
|
54
|
+
|
|
55
|
+
- name: Publish
|
|
56
|
+
if: steps.check.outputs.version_changed == 'true'
|
|
57
|
+
run: npm publish --access public --no-git-checks
|
|
58
|
+
env:
|
|
59
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
60
|
+
|
|
61
|
+
- name: Tag release
|
|
62
|
+
if: steps.check.outputs.version_changed == 'true'
|
|
63
|
+
run: |
|
|
64
|
+
git config --local user.email "github-actions[bot]@users.noreply.github.com"
|
|
65
|
+
git config --local user.name "github-actions[bot]"
|
|
66
|
+
git tag -a "v${{ steps.check.outputs.new_version }}" -m "v${{ steps.check.outputs.new_version }}"
|
|
67
|
+
git push origin "v${{ steps.check.outputs.new_version }}"
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<script type="text/javascript">
|
|
2
|
+
RED.nodes.registerType("pdf-add-page", {
|
|
3
|
+
category: "Aaqu PDF",
|
|
4
|
+
color: "#f5425d",
|
|
5
|
+
defaults: {
|
|
6
|
+
name: { value: "" },
|
|
7
|
+
width: {
|
|
8
|
+
value: 595,
|
|
9
|
+
required: false,
|
|
10
|
+
validate: RED.validators.number(),
|
|
11
|
+
},
|
|
12
|
+
height: {
|
|
13
|
+
value: 842,
|
|
14
|
+
required: false,
|
|
15
|
+
validate: RED.validators.number(),
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
inputs: 1,
|
|
19
|
+
outputs: 1,
|
|
20
|
+
icon: "file.svg",
|
|
21
|
+
paletteLabel: "pdf add page",
|
|
22
|
+
label: function () {
|
|
23
|
+
return this.name || "pdf add page";
|
|
24
|
+
},
|
|
25
|
+
// oneditprepare: function () {
|
|
26
|
+
// $("#node-input-aaquPDFWidth").typedInput({
|
|
27
|
+
// default: "str",
|
|
28
|
+
// typeField: $("#node-input-aaquPDFWidth"),
|
|
29
|
+
// types: ["str", "msg", "flow", "global"],
|
|
30
|
+
// });
|
|
31
|
+
// },
|
|
32
|
+
});
|
|
33
|
+
</script>
|
|
34
|
+
|
|
35
|
+
<script type="text/html" data-template-name="pdf-add-page">
|
|
36
|
+
<div class="form-row">
|
|
37
|
+
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
|
|
38
|
+
<input type="text" id="node-input-name" placeholder="Name" />
|
|
39
|
+
</div>
|
|
40
|
+
<div>Size i pt (A4 595x842)</div>
|
|
41
|
+
<div class="form-row">
|
|
42
|
+
<label for="node-input-width"><i class="fa fa-bookmark"></i>Width</label>
|
|
43
|
+
<input type="number" id="node-input-width" />
|
|
44
|
+
</div>
|
|
45
|
+
<div class="form-row">
|
|
46
|
+
<label for="node-input-height"><i class="fa fa-bookmark"></i>Height</label>
|
|
47
|
+
<input type="number" id="node-input-height" />
|
|
48
|
+
</div>
|
|
49
|
+
</script>
|
|
50
|
+
|
|
51
|
+
<script type="text/html" data-help-name="pdf-add-page">
|
|
52
|
+
<p>Node add page to pdf document.</p>
|
|
53
|
+
</script>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module.exports = function (RED) {
|
|
2
|
+
function PDFAddPageNode(config) {
|
|
3
|
+
RED.nodes.createNode(this, config);
|
|
4
|
+
this.width = Number(config.width || 595);
|
|
5
|
+
this.height = Number(config.height || 842);
|
|
6
|
+
const node = this;
|
|
7
|
+
node.on("input", function (msg) {
|
|
8
|
+
try {
|
|
9
|
+
const page = msg.pdfDoc.addPage([node.width, node.height]);
|
|
10
|
+
|
|
11
|
+
msg = {
|
|
12
|
+
page: page,
|
|
13
|
+
pdfDoc: msg.pdfDoc,
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
node.send(msg);
|
|
17
|
+
} catch (err) {
|
|
18
|
+
this.status({
|
|
19
|
+
fill: "red",
|
|
20
|
+
shape: "ring",
|
|
21
|
+
text: "Error adding PDF page",
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
node.error(err);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
RED.nodes.registerType("pdf-add-page", PDFAddPageNode);
|
|
29
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<script type="text/javascript">
|
|
2
|
+
RED.nodes.registerType("pdf-create", {
|
|
3
|
+
category: "Aaqu PDF",
|
|
4
|
+
color: "#f5425d",
|
|
5
|
+
defaults: {
|
|
6
|
+
name: { value: "" },
|
|
7
|
+
},
|
|
8
|
+
inputs: 1,
|
|
9
|
+
outputs: 1,
|
|
10
|
+
icon: "file.svg",
|
|
11
|
+
paletteLabel: "pdf create",
|
|
12
|
+
label: function () {
|
|
13
|
+
return this.name || "pdf create";
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<script type="text/html" data-template-name="pdf-create">
|
|
19
|
+
<div class="form-row">
|
|
20
|
+
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
|
|
21
|
+
<input type="text" id="node-input-name" placeholder="Name" />
|
|
22
|
+
</div>
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
<script type="text/html" data-help-name="pdf-create">
|
|
26
|
+
<p>Node to create pdf document.</p>
|
|
27
|
+
</script>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
const { PDFDocument } = require("pdf-lib");
|
|
2
|
+
|
|
3
|
+
module.exports = function (RED) {
|
|
4
|
+
function PDFCreateNode(config) {
|
|
5
|
+
RED.nodes.createNode(this, config);
|
|
6
|
+
var node = this;
|
|
7
|
+
node.on("input", async function (msg) {
|
|
8
|
+
try {
|
|
9
|
+
msg = {
|
|
10
|
+
pdfDoc: await PDFDocument.create(),
|
|
11
|
+
};
|
|
12
|
+
node.send(msg);
|
|
13
|
+
} catch (err) {
|
|
14
|
+
this.status({
|
|
15
|
+
fill: "red",
|
|
16
|
+
shape: "ring",
|
|
17
|
+
text: "Error creating PDF object",
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
node.error(err);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
RED.nodes.registerType("pdf-create", PDFCreateNode);
|
|
25
|
+
};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
<script type="text/javascript">
|
|
2
|
+
RED.nodes.registerType("pdf-draw-text", {
|
|
3
|
+
category: "Aaqu PDF",
|
|
4
|
+
color: "#f5425d",
|
|
5
|
+
defaults: {
|
|
6
|
+
name: { value: "" },
|
|
7
|
+
text: {
|
|
8
|
+
value: "",
|
|
9
|
+
required: false,
|
|
10
|
+
// validate: RED.validators.string(),
|
|
11
|
+
},
|
|
12
|
+
fontSize: {
|
|
13
|
+
value: 12,
|
|
14
|
+
required: true,
|
|
15
|
+
validate: RED.validators.number(),
|
|
16
|
+
},
|
|
17
|
+
posX: {
|
|
18
|
+
value: 0,
|
|
19
|
+
required: true,
|
|
20
|
+
validate: RED.validators.number(),
|
|
21
|
+
},
|
|
22
|
+
poxY: {
|
|
23
|
+
value: 0,
|
|
24
|
+
required: true,
|
|
25
|
+
validate: RED.validators.number(),
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
inputs: 1,
|
|
29
|
+
outputs: 1,
|
|
30
|
+
icon: "file.svg",
|
|
31
|
+
paletteLabel: "pdf draw text",
|
|
32
|
+
label: function () {
|
|
33
|
+
return this.name || "pdf draw text";
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
</script>
|
|
37
|
+
|
|
38
|
+
<script type="text/html" data-template-name="pdf-draw-text">
|
|
39
|
+
<div class="form-row">
|
|
40
|
+
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
|
|
41
|
+
<input type="text" id="node-input-name" placeholder="Name" />
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
<div class="form-row">
|
|
45
|
+
<label for="node-input-text"><i class="fa fa-tag"></i> Name</label>
|
|
46
|
+
<input type="text" id="node-input-text" placeholder="Text" />
|
|
47
|
+
</div>
|
|
48
|
+
|
|
49
|
+
<div class="form-row">
|
|
50
|
+
<label for="node-input-fontSize"><i class="fa fa-text"></i>Font Size</label>
|
|
51
|
+
<input type="number" id="node-input-fontSize" />
|
|
52
|
+
</div>
|
|
53
|
+
|
|
54
|
+
<div class="form-row">
|
|
55
|
+
<label for="node-input-posX"><i class="fa fa-text"></i>x</label>
|
|
56
|
+
<input type="number" id="node-input-posX" />
|
|
57
|
+
</div>
|
|
58
|
+
|
|
59
|
+
<div class="form-row">
|
|
60
|
+
<label for="node-input-poxY"><i class="fa fa-text"></i>y</label>
|
|
61
|
+
<input type="number" id="node-input-poxY" />
|
|
62
|
+
</div>
|
|
63
|
+
</script>
|
|
64
|
+
|
|
65
|
+
<script type="text/html" data-help-name="pdf-draw-text">
|
|
66
|
+
<p>Node draw text in pdf.</p>
|
|
67
|
+
</script>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
const { StandardFonts, rgb } = require("pdf-lib");
|
|
2
|
+
|
|
3
|
+
module.exports = function (RED) {
|
|
4
|
+
function PDFDrawTextNode(config) {
|
|
5
|
+
RED.nodes.createNode(this, config);
|
|
6
|
+
this.text = config.text || "";
|
|
7
|
+
this.fontSize = Number(config.fontSize || 12);
|
|
8
|
+
this.posX = Number(config.posX || 0);
|
|
9
|
+
this.poxY = Number(config.poxY || 0);
|
|
10
|
+
const node = this;
|
|
11
|
+
node.on("input", async function (msg) {
|
|
12
|
+
try {
|
|
13
|
+
const page = msg.page;
|
|
14
|
+
|
|
15
|
+
const timesRomanFont = await msg.pdfDoc.embedFont(
|
|
16
|
+
StandardFonts.TimesRoman,
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
page.drawText(node.text, {
|
|
20
|
+
x: node.poxX,
|
|
21
|
+
y: node.poxY,
|
|
22
|
+
size: node.fontSize,
|
|
23
|
+
font: timesRomanFont,
|
|
24
|
+
color: rgb(0, 0, 0),
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
msg = {
|
|
28
|
+
page: page,
|
|
29
|
+
pdfDoc: msg.pdfDoc,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
node.send(msg);
|
|
33
|
+
} catch (err) {
|
|
34
|
+
this.status({
|
|
35
|
+
fill: "red",
|
|
36
|
+
shape: "ring",
|
|
37
|
+
text: "Error drawing text in PDF",
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
node.error(err);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
RED.nodes.registerType("pdf-draw-text", PDFDrawTextNode);
|
|
45
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script type="text/javascript">
|
|
2
2
|
RED.nodes.registerType("pdf-get-page", {
|
|
3
|
-
category: "
|
|
4
|
-
color: "#
|
|
3
|
+
category: "Aaqu PDF",
|
|
4
|
+
color: "#f5425d",
|
|
5
5
|
defaults: {
|
|
6
6
|
name: { value: "" },
|
|
7
7
|
pdfPage: { value: 1, required: false, validate: RED.validators.number() },
|
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
inputs: 1,
|
|
10
10
|
outputs: 1,
|
|
11
11
|
icon: "file.svg",
|
|
12
|
+
paletteLabel: "pdf get page",
|
|
12
13
|
label: function () {
|
|
13
|
-
return this.name || "pdf
|
|
14
|
+
return this.name || "pdf get page";
|
|
14
15
|
},
|
|
15
16
|
});
|
|
16
17
|
</script>
|
|
@@ -22,9 +23,7 @@
|
|
|
22
23
|
</div>
|
|
23
24
|
|
|
24
25
|
<div class="form-row">
|
|
25
|
-
<label for="node-input-pdfPage"
|
|
26
|
-
><i class="fa fa-tag"></i> Select pdf page</label
|
|
27
|
-
>
|
|
26
|
+
<label for="node-input-pdfPage"><i class="fa fa-tag"></i>Page</label>
|
|
28
27
|
<input type="number" id="node-input-pdfPage" placeholder="Page" />
|
|
29
28
|
</div>
|
|
30
29
|
</script>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<script type="text/javascript">
|
|
2
|
+
RED.nodes.registerType("pdf-save", {
|
|
3
|
+
category: "Aaqu PDF",
|
|
4
|
+
color: "#f5425d",
|
|
5
|
+
defaults: {
|
|
6
|
+
name: { value: "" },
|
|
7
|
+
},
|
|
8
|
+
inputs: 1,
|
|
9
|
+
outputs: 1,
|
|
10
|
+
icon: "file.svg",
|
|
11
|
+
paletteLabel: "pdf save",
|
|
12
|
+
label: function () {
|
|
13
|
+
return this.name || "pdf save";
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<script type="text/html" data-template-name="pdf-save">
|
|
19
|
+
<div class="form-row">
|
|
20
|
+
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
|
|
21
|
+
<input type="text" id="node-input-name" placeholder="Name" />
|
|
22
|
+
</div>
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
<script type="text/html" data-help-name="pdf-save">
|
|
26
|
+
<p>Node to save pdf document.</p>
|
|
27
|
+
</script>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
module.exports = function (RED) {
|
|
2
|
+
function PDFSaveNode(config) {
|
|
3
|
+
RED.nodes.createNode(this, config);
|
|
4
|
+
|
|
5
|
+
var node = this;
|
|
6
|
+
node.on("input", async function (msg) {
|
|
7
|
+
try {
|
|
8
|
+
msg = {
|
|
9
|
+
payload: Buffer.from(await msg.pdfDoc.save()),
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
node.send(msg);
|
|
13
|
+
} catch (err) {
|
|
14
|
+
this.status({
|
|
15
|
+
fill: "red",
|
|
16
|
+
shape: "ring",
|
|
17
|
+
text: "Error parsing PDF",
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
node.error(err);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
RED.nodes.registerType("pdf-save", PDFSaveNode);
|
|
25
|
+
};
|
|
@@ -1,32 +1,31 @@
|
|
|
1
1
|
<script type="text/javascript">
|
|
2
2
|
RED.nodes.registerType("pdf-to-img", {
|
|
3
|
-
category: "
|
|
4
|
-
color: "#
|
|
3
|
+
category: "Aaqu PDF",
|
|
4
|
+
color: "#f5425d",
|
|
5
5
|
defaults: {
|
|
6
6
|
name: { value: "" },
|
|
7
|
-
|
|
7
|
+
scale: { value: 1, required: false, validate: RED.validators.number() },
|
|
8
8
|
},
|
|
9
9
|
inputs: 1,
|
|
10
10
|
outputs: 1,
|
|
11
11
|
icon: "file.svg",
|
|
12
|
+
paletteLabel: "pdf to img",
|
|
12
13
|
label: function () {
|
|
13
|
-
return this.name || "pdf
|
|
14
|
+
return this.name || "pdf to img";
|
|
14
15
|
},
|
|
15
16
|
});
|
|
16
17
|
</script>
|
|
17
18
|
|
|
18
19
|
<script type="text/html" data-template-name="pdf-to-img">
|
|
19
20
|
<div class="form-row">
|
|
20
|
-
<label for="node-input-name"><i class="fa fa-tag"></i>
|
|
21
|
+
<label for="node-input-name"><i class="fa fa-tag"></i>Name</label>
|
|
21
22
|
<input type="text" id="node-input-name" placeholder="Name" />
|
|
22
23
|
</div>
|
|
23
24
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
<!-- <input type="number" id="node-input-pdfPage" placeholder="Page" />-->
|
|
29
|
-
<!-- </div>-->
|
|
25
|
+
<div class="form-row">
|
|
26
|
+
<label for="node-input-scale"><i class="fa fa-tag"></i>Scale</label>
|
|
27
|
+
<input type="number" id="node-input-scale" placeholder="Page" />
|
|
28
|
+
</div>
|
|
30
29
|
</script>
|
|
31
30
|
|
|
32
31
|
<script type="text/html" data-help-name="pdf-to-img">
|
|
@@ -3,13 +3,13 @@ const { pdf } = require("pdf-to-img");
|
|
|
3
3
|
module.exports = function (RED) {
|
|
4
4
|
function PDFToImageNode(config) {
|
|
5
5
|
RED.nodes.createNode(this, config);
|
|
6
|
-
|
|
6
|
+
this.scale = config.scale;
|
|
7
7
|
var node = this;
|
|
8
8
|
node.on("input", async function (msg) {
|
|
9
9
|
try {
|
|
10
10
|
const pdfBuffer = msg.payload;
|
|
11
11
|
|
|
12
|
-
const document = await pdf(pdfBuffer, { scale:
|
|
12
|
+
const document = await pdf(pdfBuffer, { scale: node.scale });
|
|
13
13
|
const page12buffer = await document.getPage(1);
|
|
14
14
|
|
|
15
15
|
msg.payload = page12buffer;
|
|
@@ -17,7 +17,7 @@ module.exports = function (RED) {
|
|
|
17
17
|
} catch (err) {
|
|
18
18
|
this.status({
|
|
19
19
|
fill: "red",
|
|
20
|
-
shape: "
|
|
20
|
+
shape: "ring",
|
|
21
21
|
text: "Error parsing PDF to Image",
|
|
22
22
|
});
|
|
23
23
|
|
package/package.json
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aaqu/node-red-aaqu-pdf",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "node-red pdf creator",
|
|
5
|
-
"main": "pdf-get-page.js",
|
|
6
5
|
"scripts": {
|
|
7
6
|
"node-red": "node-red"
|
|
8
7
|
},
|
|
@@ -12,8 +11,12 @@
|
|
|
12
11
|
"node-red": {
|
|
13
12
|
"version": ">=4.0.0",
|
|
14
13
|
"nodes": {
|
|
15
|
-
"pdf-get-page": "pdf-get-page.js",
|
|
16
|
-
"pdf-to-img": "pdf-to-img.js"
|
|
14
|
+
"pdf-get-page": "nodes/pdf-get-page.js",
|
|
15
|
+
"pdf-to-img": "nodes/pdf-to-img.js",
|
|
16
|
+
"pdf-create": "nodes/pdf-create.js",
|
|
17
|
+
"pdf-add-page": "nodes/pdf-add-page.js",
|
|
18
|
+
"pdf-save": "nodes/pdf-save.js",
|
|
19
|
+
"pdf-draw-text": "nodes/pdf-draw-text.js"
|
|
17
20
|
}
|
|
18
21
|
},
|
|
19
22
|
"keywords": [
|
|
@@ -27,11 +30,11 @@
|
|
|
27
30
|
"email": "kontakt@mazuralbert.pl"
|
|
28
31
|
},
|
|
29
32
|
"dependencies": {
|
|
30
|
-
"canvas": "^3.2.0",
|
|
31
33
|
"pdf-lib": "^1.17.1",
|
|
32
34
|
"pdf-to-img": "^5.0.0"
|
|
33
35
|
},
|
|
34
36
|
"devDependencies": {
|
|
37
|
+
"node-red": "^4.1.0",
|
|
35
38
|
"prettier": "^3.6.2"
|
|
36
39
|
},
|
|
37
40
|
"repository": {
|
package/img/example.png
DELETED
|
Binary file
|
package/img/example2.png
DELETED
|
Binary file
|
|
Binary file
|
package/img/node-pdf-to-img.png
DELETED
|
Binary file
|