Skip to content

Commit ac15005

Browse files
Aspose.PDF for JavaScript via C++ 25.9
1 parent 65870e9 commit ac15005

File tree

7 files changed

+110
-7
lines changed

7 files changed

+110
-7
lines changed

AsposePDFforJS.js

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

AsposePDFforJS.wasm.zip

-142 KB
Binary file not shown.

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Add PDF processing, manipulation, and conversion features to your front-end appl
2323
- **Other formats:** Grayscale PDF, PDF/A, TeX, TXT, Markdown
2424
- **Manipulate** PDF structure and content:
2525
- Bookmarks, hyperlinks, annotations, attachments, JavaScript
26-
- Fonts, metadata, layers, background color
26+
- Fonts, metadata, layers, background color, tables
2727
- **Secure PDF documents**:
2828
- Encrypt, decrypt, set or change passwords
2929
- Configure access permissions
@@ -40,7 +40,7 @@ Add PDF processing, manipulation, and conversion features to your front-end appl
4040
- PDF, PDF/A
4141

4242
**Save/Export As:**
43-
- **Office:** DOC, DOCX, XLS, XLSX, PPTX
43+
- **Office:** DOC, DOCX, DOCX(Enhanced Recognition Mode), XLS, XLSX, PPTX
4444
- **Images:** JPEG, PNG, BMP, TIFF, DICOM
4545
- **Other:** EPUB, SVG, SVG (ZIP), TeX, TXT, Grayscale PDF, PDF/A, XPS
4646

@@ -53,7 +53,7 @@ Add PDF processing, manipulation, and conversion features to your front-end appl
5353
- **Metadata:** Set, extract, or remove metadata.
5454
- **Layers:** Get list of layers, merge or flatten them.
5555
- **Forms & Annotations:**
56-
- Delete annotations, bookmarks, JavaScript
56+
- Delete annotations, bookmarks, JavaScript, tables
5757
- Flatten forms
5858
- **Attachments:** Add, extract, or delete file attachments.
5959
- **Text Tools:**

example.html

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,10 @@ <h2>Aspose.PDF for JavaScript via C++</h2>
304304
<label for="fileOptimizeFileSize">SIZE OPTIMIZE<span class="tooltip">Optimize size of PDF-file with image compression quality</span></label>
305305
<input type="file" id="fileOptimizeFileSize" accept="application/pdf" onchange="ffileOptimizeFileSize(event)">
306306
</div>
307+
<div class="column">
308+
<label for="filePdfDeleteTables">DEL TABLES<span class="tooltip">Delete tables from a PDF-file</span></label>
309+
<input type="file" id="filePdfDeleteTables" accept="application/pdf" onchange="ffilePdfDeleteTables(event)">
310+
</div>
307311
</div>
308312
</div>
309313

@@ -945,6 +949,17 @@ <h2>Aspose.PDF for JavaScript via C++</h2>
945949
file_reader.readAsArrayBuffer(e.target.files[0]);
946950
}
947951

952+
var ffilePdfDeleteTables = function (e) {
953+
const file_reader = new FileReader();
954+
file_reader.onload = (event) => {
955+
const json = AsposePdfDeleteTables(event.target.result, e.target.files[0].name, "ResultPdfDeleteTables.pdf");
956+
if (json.errorCode == 0) document.getElementById('output').textContent = json.fileNameResult;
957+
else document.getElementById('output').textContent = json.errorText;
958+
DownloadFile(json.fileNameResult, "application/pdf");
959+
}
960+
file_reader.readAsArrayBuffer(e.target.files[0]);
961+
}
962+
948963
var ffileToDICOM = function (e) {
949964
const file_reader = new FileReader();
950965
file_reader.onload = (event) => {

example_worker.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@
9696
<option value="AsposePdfEmbedFonts">Embed fonts a PDF-file</option>
9797
<option value="AsposePdfUnembedFonts">Unembed fonts a PDF-file</option>
9898
<option value="AsposePdfOptimizeFileSize">Optimize size of PDF-file with image compression quality</option>
99+
<option value="AsposePdfDeleteTables">Delete tables from a PDF-file</option>
99100

100101
<optgroup label="Metadata PDF">
101102
<option value="AsposePdfSetInfo">Set info (metadata) in a PDF-file</option>
@@ -332,7 +333,7 @@
332333
// AsposePdfReplaceFont, AsposePdfDeleteHiddenText, AsposePdfAddWatermark, AsposePdfDeleteWatermarks,
333334
// AsposePdfMergeLayers, AsposePdfFlatten, AsposePdfReplaceTextPages, AsposePdfMakeBooklet,
334335
// AsposePdfMakeNUp, AsposePdfDeleteBlankPages, AsposePdfAddStampPages, AsposePdfEmbedFonts, AsposePdfUnembedFonts,
335-
// AsposePdfOptimizeFileSize
336+
// AsposePdfOptimizeFileSize, AsposePdfDeleteTables,
336337
DownloadFile(json.fileNameResult, "application/pdf", params[0]);
337338
}
338339
}
@@ -666,6 +667,7 @@
666667
// AsposePdfDeleteBookmarks, AsposePdfDeleteAttachments, AsposePdfDeleteImages, AsposePdfDeleteJavaScripts,
667668
// AsposePdfFromTxt, AsposePdfFindHiddenText, AsposePdfDeleteHiddenText, AsposePdfDeleteWatermarks,
668669
// AsposePdfFlatten, AsposePdfMakeBooklet, AsposePdfDeleteBlankPages, AsposePdfEmbedFonts, AsposePdfUnembedFonts,
670+
// AsposePdfDeleteTables
669671
transfer = [event.target.result];
670672
params = [event.target.result, ffile.name, `Result${operation}.pdf`];
671673
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
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="filePdfDeleteTables">Choose a PDF-file to delete tables</label>
12+
<input type="file" id="filePdfDeleteTables" accept="application/pdf" onchange="ffilePdfDeleteTables(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 ffilePdfDeleteTables = function (e) {
21+
const file_reader = new FileReader();
22+
file_reader.onload = (event) => {
23+
/*Delete tables from a PDF-file and save the "ResultPdfDeleteTables.pdf"*/
24+
const json = AsposePdfDeleteTables(event.target.result, e.target.files[0].name, "ResultPdfDeleteTables.pdf");
25+
if (json.errorCode == 0) document.getElementById('output').textContent = json.fileNameResult
26+
else document.getElementById('output').textContent = json.errorText;
27+
/*Make a link to download the result file*/
28+
DownloadFile(json.fileNameResult, "application/pdf");
29+
};
30+
file_reader.readAsArrayBuffer(e.target.files[0]);
31+
};
32+
/// [Code snippet]
33+
</script>
34+
35+
</html>
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
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="filePdfDeleteTables">Choose a PDF-file to delete tables</label>
12+
<input type="file" id="filePdfDeleteTables" accept="application/pdf" onchange="ffilePdfDeleteTables(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) ? `Result:\n${DownloadFile(evt.data.json.fileNameResult, "application/pdf", evt.data.params[0])}` : `Error: ${evt.data.json.errorText}`;
25+
26+
/*Event handler*/
27+
const ffilePdfDeleteTables = e => {
28+
const file_reader = new FileReader();
29+
file_reader.onload = event => {
30+
/*Delete tables from a PDF-file and save the "ResultPdfDeleteTables.pdf" - Ask Web Worker*/
31+
AsposePDFWebWorker.postMessage({ "operation": 'AsposePdfDeleteTables', "params": [event.target.result, e.target.files[0].name, "ResultPdfDeleteTables.pdf"] }, [event.target.result]);
32+
};
33+
file_reader.readAsArrayBuffer(e.target.files[0]);
34+
};
35+
/// [Code snippet]
36+
37+
/*Make a link to download the result file*/
38+
const DownloadFile = (filename, mime, content) => {
39+
mime = mime || "application/octet-stream";
40+
var link = document.createElement("a");
41+
link.href = URL.createObjectURL(new Blob([content], {type: mime}));
42+
link.download = filename;
43+
link.innerHTML = "Click here to download the file " + filename;
44+
document.body.appendChild(link);
45+
document.body.appendChild(document.createElement("br"));
46+
return filename;
47+
}
48+
</script>
49+
50+
</html>

0 commit comments

Comments
 (0)