#javascript #pdf.js
#javascript #pdf.js
Вопрос:
Может кто-нибудь, пожалуйста, привести недавний рабочий пример? Я уже неделю пытаюсь заставить работать один из многих примеров, которые я нашел в Google, но ни один из них не работает. Большинство из них не учитывают важную информацию, такую как версия pdf.js они используют. Всем им несколько лет, и с тех пор код базовой библиотеки изменился.
Я могу загрузить PDF-файл и просмотреть его, но не могу выделить из него текст.
Я просто хочу загрузить drawing.pdf, найти и выделить в нем некоторый текст, затем увеличить его. Мне не нужны решения, использующие существующий просмотрщик, у которого есть своя панель инструментов, или который использует iframes.
Вот некоторый код, который должен работать, но не работает в Chrome с
«PDFViewer не определен»
<!DOCTYPE html>
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<style>
#canvas_container {
width: 800px;
height: 450px;
overflow: auto;
}
</style>
<link rel="stylesheet" href="pdf.js/web/text_layer_builder.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script
type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.0.943/pdf.min.js"
></script>
<script
type="text/javascript"
src="https://raw.githubusercontent.com/mozilla/pdf.js/master/web/ui_utils.js"
></script>
<script
type="text/javascript"
src="https://raw.githubusercontent.com/mozilla/pdf.js/master/web/text_layer_builder.js"
></script>
<script
type="text/javascript"
src="https://raw.githubusercontent.com/mozilla/pdf.js/master/web/pdf_viewer.js"
></script>
</head>
<body>
<div>TODO write content</div>
<div id="my_pdf_viewer">
<div id="canvas_container">
<canvas id="pdf_renderer"></canvas>
</div>
</div>
<script>
var myState = {
pdf: null,
currentPage: 1,
zoom: 1,
};
this.loadPdfDrawing = function (drawingName) {
pdfjsLib.getDocument(drawingName).then((pdf) => {
myState.pdf = pdf;
render();
});
};
function render() {
myState.pdf.getPage(myState.currentPage).then((page) => {
var canvas = document.getElementById("pdf_renderer");
var ctx = canvas.getContext("2d");
var viewport = page.getViewport(myState.zoom);
canvas.width = viewport.width;
canvas.height = viewport.height;
page.render({
canvasContext: ctx,
viewport: viewport,
});
});
}
var container = document.getElementById("my_pdf_viewer");
var viewer = document.getElementById("canvas_container");
var pdfViewer = new PDFViewer({
container: container,
viewer: viewer,
});
var pdfFindController = new PDFFindController({
pdfViewer: pdfViewer,
});
pdfViewer.setFindController(pdfFindController);
function findText(text) {
pdfFindController.executeCommand("find", {
caseSensitive: false,
findPrevious: undefined,
highlightAll: true,
phraseSearch: true,
query: text,
});
}
document.addEventListener("DOMContentLoaded", function (event) {
loadPdfDrawing("386-5001.pdf");
findText("12.000");
});
</script>
</body>
</html>
Отказано в выполнении скрипта из
‘https://raw.githubusercontent.com/mozilla/pdf.js/master/web/ui_utils.js ‘
поскольку его MIME-тип (‘text / plain’) не является исполняемым и строгим
Включена проверка типа MIME. index.html:1 Отказался выполнить скрипт
из
‘https://raw.githubusercontent.com/mozilla/pdf.js/master/web/text_layer_builder.js ‘
поскольку его MIME-тип (‘text / plain’) не является исполняемым и строгим
Включена проверка типа MIME. index.html:1 Отказался выполнить скрипт
из
‘https://raw.githubusercontent.com/mozilla/pdf.js/master/web/pdf_viewer.js ‘
поскольку его MIME-тип (‘text / plain’) не является исполняемым и строгим
Включена проверка типа MIME.
Комментарии:
1. Ты разобрался в этом? У меня такое же требование, и я застрял здесь тоже с той же ошибкой PDFViewer is not defined.
2. Нет, я этого не делал. Вы получаете то, за что платите за это. Дрянная, устаревшая документация. Мне пришлось двигаться дальше.