'this' implicitly has type 'any' because it does not have a type annotation.
I want to preview my pdfFile using pdfjs-dist but I don't know why I can't use this.$refs.pdfViewer.
I followed the steps with the instructor in the video. but encountered this problem.
onpdf(e: any) {
this.pdfFile = e.target.files[0];
// Did i miss something here?
if (this.pdfFile.type == "application/pdf") {
let fileReader = new FileReader();
fileReader.onload = function () {
let pdfData = new Uint8Array(this.result as any);
let loadingTask = pdfjsLib.getDocument({ data: pdfData });
loadingTask.promise.then(function (pdf) {
console.log("PDF loaded");
let pageNumber = 1;
pdf.getPage(pageNumber).then(
function (page) {
console.log("Page loaded");
let scale = 1.5;
let viewport = page.getViewport({ scale: scale });
let canvas = this.$refs.pdfViewer; // *this* here is the ploblem
let context = canvas.getContext("2d");
canvas.height = viewport.height;
canvas.width = viewport.width;
let renderContext = {
canvasContext: context,
viewport: viewport,
};
let renderTask = page.render(renderContext);
renderTask.promise.then(function () {
console.log("Page rendered");
});
},
function (reason) {
console.error(reason);
},
);
});
};
fileReader.readAsArrayBuffer(this.pdfFile);
}
}
<input @change="onpdf"/>
<canvas ref="pdfViewer"></canvas>