ereminmdev / yii2-pdfjs
Yii2 widget for PDF.js library.
Installs: 4
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- php: >=7.4
- npm-asset/pdfjs-dist: ^5.4
- yiisoft/yii2: ~2.0.1
README
Yii2 widget for PDF.js library: https://mozilla.github.io/pdf.js/
Install
composer require --prefer-dist ereminmdev/yii2-pdfjs
Documentation
https://mozilla.github.io/pdf.js/examples/
Using
$pdfUrl = '/path_to/file.pdf';
$pdfJsAsset = PdfJsAsset::register($this);
$workerSrc = $pdfJsAsset->baseUrl . '/pdf.worker.min.mjs';
$this->registerJs(<<<JS
const containerDiv = document.getElementById('pdfDoc');
const {pdfjsLib} = globalThis;
pdfjsLib.GlobalWorkerOptions.workerSrc = '$workerSrc';
const loadingTask = pdfjsLib.getDocument('$pdfUrl');
loadingTask.promise.then(function (pdf) {
const numPages = pdf.numPages;
for (let pageNumber = 1; pageNumber <= numPages; pageNumber++) {
pdf.getPage(pageNumber).then(function (page) {
const scale = 1.5;
const viewport = page.getViewport({scale: scale});
const canvas = document.createElement('canvas');
canvas.id = 'pdfCanvas' + pageNumber;
const context = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;
const renderContext = {
canvasContext: context,
viewport: viewport
};
page.render(renderContext);
containerDiv.appendChild(canvas);
});
}
});
JS
);
...
<div id="pdfDoc"></div>