Skip to content

Commit 1cb4f4a

Browse files
Aspose.PDF for JavaScript via C++ 24.5
1 parent 1e23974 commit 1cb4f4a

File tree

6 files changed

+122
-5
lines changed

6 files changed

+122
-5
lines changed

AsposePDFforJS.js

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

AsposePDFforJS.wasm.zip

-809 Bytes
Binary file not shown.

example.html

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,10 @@ <h2>Aspose.PDF for JavaScript via C++</h2>
122122
<label for="fileExportXml">EXPORT XML<span class="tooltip">Export from a PDF-file with AcroForm to XML</span></label>
123123
<input type="file" id="fileExportXml" accept="application/pdf" onchange="ffileExportXml(event)">
124124
</div>
125+
<div class="column">
126+
<label for="fileToPDF">PDF<span class="tooltip">Convert a PDF-file to PDF (separate pages)</span></label>
127+
<input type="file" id="fileToPDF" accept="application/pdf" onchange="ffileToPDF(event)">
128+
</div>
125129
</div>
126130
</div>
127131

@@ -1000,6 +1004,18 @@ <h2>Aspose.PDF for JavaScript via C++</h2>
10001004
file_reader.readAsArrayBuffer(e.target.files[0]);
10011005
}
10021006

1007+
var ffileToPDF = function (e) {
1008+
const file_reader = new FileReader();
1009+
file_reader.onload = (event) => {
1010+
const json = AsposePdfPagesToPDF(event.target.result, e.target.files[0].name, "ResultPdfToPDF{0:D2}.pdf");
1011+
if (json.errorCode == 0) {
1012+
document.getElementById('output').textContent = "Files(pages) count: " + json.filesCount.toString();
1013+
for (let fileIndex = 0; fileIndex < json.filesCount; fileIndex++) DownloadFile(json.filesNameResult[fileIndex], "application/pdf");
1014+
}
1015+
else document.getElementById('output').textContent = json.errorText;
1016+
}
1017+
file_reader.readAsArrayBuffer(e.target.files[0]);
1018+
}
10031019

10041020
</script>
10051021

example_worker.html

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
<option value="AsposePdfPagesToDICOM">Convert a PDF-file to DICOM</option>
3333
<option value="AsposePdfPagesToSvg">Convert a PDF-file to SVG</option>
3434
<option value="AsposePdfPagesToSvgZip">Convert a PDF-file to SVG(zip)</option>
35+
<option value="AsposePdfPagesToPDF">Convert a PDF-file to PDF (separate pages)</option>
3536
<option value="AsposePdfToTeX">Convert a PDF-file to TeX</option>
3637
<option value="AsposePdfToXps">Convert a PDF-file to Xps</option>
3738
<option value="AsposePdfTablesToCSV">Convert a PDF-file to CSV (extract tables)</option>
@@ -283,6 +284,11 @@
283284
case 'AsposePdfExportXml':
284285
DownloadFile(json.fileNameResult, "application/xml", params[0]);
285286
break;
287+
case 'AsposePdfPagesToPDF':
288+
document.getElementById('output').textContent = "Files(pages) count: " + json.filesCount.toString();
289+
for (let fileIndex = 0; fileIndex < json.filesCount; fileIndex++)
290+
DownloadFile(json.filesNameResult[fileIndex], "application/pdf", params[fileIndex]);
291+
break;
286292
default:
287293
// AsposePdfAConvertToPDF, AsposePdfAddBackgroundImage, AsposePdfAddImage, AsposePdfAddPageNum,
288294
// AsposePdfAddStamp, AsposePdfAddTextHeaderFooter, AsposePdfConvertToGrayscale, AsposePdfDecrypt,
@@ -555,6 +561,11 @@
555561
transfer = [event.target.result];
556562
params = [event.target.result, ffile.name, findFont, replaceFont, `Result${operation}.pdf`];
557563
break;
564+
case 'AsposePdfPagesToPDF':
565+
const template_pdf = `Result${operation}{0:D2}.pdf`; //result filename template
566+
transfer = [event.target.result];
567+
params = [event.target.result, ffile.name, template_pdf];
568+
break;
558569
default:
559570
// AsposePdfOptimize, AsposePdfAddPageNum, AsposePdfConvertToGrayscale, AsposePdfAConvertToPDF,
560571
// AsposePdfRemoveMetadata, AsposePdfRepair, AsposePdfOptimizeResource, AsposePdfDeleteAnnotations,

snippets/AsposePdfPagesToPDF.html

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<!DOCTYPE html>
2+
<html>
3+
4+
<head>
5+
<meta name="viewport" content="width=device-width, initial-scale=1">
6+
<meta charset="UTF-8">
7+
<title>Aspose.PDF for JavaScript via C++</title>
8+
</head>
9+
10+
<body>
11+
<label for="fileToPDF">Choose a PDF-file to convert to PDF (separate pages)</label>
12+
<input type="file" id="fileToPDF" accept="application/pdf" onchange="ffileToPDF(event)">
13+
<br>
14+
<pre id="output"></pre>
15+
</body>
16+
<!-- Load and initiate Aspose.PDF for JavaScript via C++ -->
17+
<script type="text/javascript" async src="AsposePDFforJS.js"></script>
18+
<script type="text/javascript">
19+
/// [Code snippet]
20+
var ffileToPDF = function (e) {
21+
const file_reader = new FileReader();
22+
file_reader.onload = (event) => {
23+
/*Convert a PDF-file to separate PDF pages with template "ResultPdfToPDF{0:D2}.pdf" ({0}, {0:D2}, {0:D3}, ... format page number) and save*/
24+
const json = AsposePdfPagesToPDF(event.target.result, e.target.files[0].name, "ResultPdfToPDF{0:D2}.pdf");
25+
if (json.errorCode == 0) {
26+
document.getElementById('output').textContent = "Files(pages) count: " + json.filesCount.toString();
27+
/*Make links to result files*/
28+
for (let fileIndex = 0; fileIndex < json.filesCount; fileIndex++) DownloadFile(json.filesNameResult[fileIndex], "application/pdf");
29+
}
30+
else document.getElementById('output').textContent = json.errorText;
31+
};
32+
file_reader.readAsArrayBuffer(e.target.files[0]);
33+
};
34+
/// [Code snippet]
35+
</script>
36+
37+
</html>
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<!DOCTYPE html>
2+
<html>
3+
4+
<head>
5+
<meta name="viewport" content="width=device-width, initial-scale=1">
6+
<meta charset="UTF-8">
7+
<title>Aspose.PDF for JavaScript via C++</title>
8+
</head>
9+
10+
<body>
11+
<label for="fileToPDF">Choose a PDF-file to convert to PDF (separate pages)</label>
12+
<input type="file" id="fileToPDF" accept="application/pdf" onchange="ffileToPDF(event)">
13+
<br>
14+
<pre id="output">please wait for loading...</pre>
15+
</body>
16+
17+
<script type="text/javascript">
18+
/// [Code snippet]
19+
/*Create Web Worker*/
20+
const AsposePDFWebWorker = new Worker("AsposePDFforJS.js");
21+
AsposePDFWebWorker.onerror = evt => console.log(`Error from Web Worker: ${evt.message}`);
22+
AsposePDFWebWorker.onmessage = evt => document.getElementById('output').textContent =
23+
(evt.data == 'ready') ? 'loaded!' :
24+
(evt.data.json.errorCode == 0) ?
25+
`Files(pages) count: ${evt.data.json.filesCount.toString()}\n${evt.data.params.forEach(
26+
(element, index) => DownloadFile(evt.data.json.filesNameResult[index], "application/pdf", element) ) ?? ""}` :
27+
`Error: ${evt.data.json.errorText}`;
28+
29+
/*Event handler*/
30+
const ffileToPDF = e => {
31+
const file_reader = new FileReader();
32+
file_reader.onload = event => {
33+
/*Convert a PDF-file to separate PDF pages with template "ResultPdfToPDF{0:D2}.pdf" ({0}, {0:D2}, {0:D3}, ... format page number) and save - Ask Web Worker*/
34+
AsposePDFWebWorker.postMessage({ "operation": 'AsposePdfPagesToPDF', "params": [event.target.result, e.target.files[0].name, "ResultPdfToPDF{0:D2}.pdf"] }, [event.target.result]);
35+
};
36+
file_reader.readAsArrayBuffer(e.target.files[0]);
37+
};
38+
/// [Code snippet]
39+
40+
/*Make a link to download the result file*/
41+
const DownloadFile = (filename, mime, content) => {
42+
mime = mime || "application/octet-stream";
43+
var link = document.createElement("a");
44+
link.href = URL.createObjectURL(new Blob([content], {type: mime}));
45+
link.download = filename;
46+
link.innerHTML = "Click here to download the file " + filename;
47+
document.body.appendChild(link);
48+
document.body.appendChild(document.createElement("br"));
49+
return filename;
50+
}
51+
</script>
52+
53+
</html>

0 commit comments

Comments
 (0)