Skip to content

Commit e25e63d

Browse files
committed
Add pdf to png converter
1 parent 88c7bd1 commit e25e63d

File tree

4 files changed

+64437
-1
lines changed

4 files changed

+64437
-1
lines changed

index.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@
33
<meta charset="utf-8"/>
44
</head>
55
<a href="rIC/index.html">Vizualize requestIdleCallback</a><br />
6-
<a href="load/index.html">Load simulator</a>
6+
<a href="load/index.html">Load simulator</a><br />
7+
<a href="pdftopng/index.html">PDF to PNG converter</a>

pdftopng/index.html

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
<script src="pdf.js"></script>
2+
<script>
3+
PDFJS.workerSrc = "pdf.worker.js";
4+
5+
var handleFiles = function() {
6+
let canvas = document.createElement('canvas');
7+
let context = canvas.getContext('2d');
8+
9+
function getBuffer(file) {
10+
return new Promise(function (resolve) {
11+
let reader = new FileReader();
12+
reader.onload = function (e) {
13+
resolve(new Uint8Array(e.target.result));
14+
};
15+
reader.readAsArrayBuffer(file);
16+
})
17+
}
18+
19+
function render(buffer) {
20+
return PDFJS.getDocument(buffer).then(function(pdf) {
21+
return pdf.getPage(1);
22+
}).then(function (page) {
23+
let viewport = page.getViewport(2.0);
24+
canvas.width = viewport.width;
25+
canvas.height = viewport.height;
26+
return page.render({ canvasContext: context, viewport: viewport });
27+
}).then(function() {
28+
let img = document.createElement('img');
29+
img.src = canvas.toDataURL();
30+
document.body.appendChild(img);
31+
});
32+
}
33+
34+
function pdftopng(file) {
35+
return getBuffer(file).then(render);
36+
}
37+
38+
return function handleFiles(files) {
39+
for (let f of files) {
40+
var png = pdftopng(f);
41+
}
42+
}
43+
}();
44+
45+
46+
</script>
47+
<body>
48+
<input type="file" id="input" onchange="handleFiles(this.files)" accept="application/pdf"></input><br />
49+
</body>

0 commit comments

Comments
 (0)