Files
2026-04-28 21:15:09 +03:00

49 lines
1.3 KiB
JavaScript

// @link WebViewerInstance: https://www.pdftron.com/api/web/WebViewerInstance.html
// @link UI.loadDocument: https://www.pdftron.com/api/web/UI.html#loadDocument__anchor
WebViewer(
{
path: '../../../lib',
initialDoc: '../../files/table.pdf',
},
document.getElementById('viewer')
).then(instance => {
samplesSetup(instance);
const { annotManager, docViewer } = instance;
docViewer.on('documentLoaded', async () => {
const doc = docViewer.getDocument();
const data = await doc.getFileData();
const fileName = doc.getFilename();
const arr = new Uint8Array(data);
const file = new File([arr], fileName, { type: 'application/pdf' });
const { xfdf } = await extractTableData(file);
annotManager.importAnnotations(xfdf);
});
document.getElementById('file-picker').onchange = async e => {
const file = e.target.files[0];
if (file) {
docViewer.loadDocument(file);
}
};
async function extractTableData(file) {
const response = await fetch('https://ai-serve.pdftron.com/extract/predict', {
method: 'POST',
body: file,
headers: {
'File-Name': file.name || 'test_pdf.pdf',
'Content-Type': 'application/json',
},
});
const data = await response.json();
const { xfdf, html } = data;
return { xfdf, html };
}
});