Я совершенно новый для программирования на стороне клиента. Я пытаюсь просмотреть мой pdf-файл в своей сети, используя pdf.js. Следуя инструкциям в документации, я попробовал загрузить pdf с pdf.js. Весь файл PDF загружается в один запрос. Теперь я хотел бы сделать прогрессивную загрузку (загрузку, указав диапазон).Как установить заголовок диапазона от клиента с помощью pdf.js?
Я сделал следующие вещи на стороне моего клиента и сервера.
Мой клиент содержит два файла
- form.js и
- index.html
КЛИЕНТА form.js
'use strict';
var PDF_PATH = ""; //Path of pdf file in web
var PAGE_NUMBER = 1;
var PAGE_SCALE = 1.5;
function renderPage(div, pdf, pageNumber, callback) {
pdf.getPage(pageNumber).then(function(page) {
var scale = 1.5;
var viewport = page.getViewport(scale);
var pageDisplayWidth = viewport.width;
var pageDisplayHeight = viewport.height;
var pageDivHolder = document.createElement('div');
pageDivHolder.className = 'pdfpage';
pageDivHolder.style.width = pageDisplayWidth + 'px';
pageDivHolder.style.height = pageDisplayHeight + 'px';
div.appendChild(pageDivHolder);
// Prepare canvas using PDF page dimensions
var canvas = document.createElement('canvas');
var context = canvas.getContext('2d');
canvas.width = pageDisplayWidth;
canvas.height = pageDisplayHeight;
pageDivHolder.appendChild(canvas);
// Render PDF page into canvas context
var renderContext = {
canvasContext: context,
viewport: viewport
};
page.render(renderContext).promise.then(callback);
// Prepare and populate form elements layer
var formDiv = document.createElement('div');
pageDivHolder.appendChild(formDiv);
//setupForm(formDiv, page, viewport);
});
}
function pageLoaded() {
PDFJS.disableWorker = true;
PDFJS.workerSrc = "./pdf.worker.js"; // no i18n
PDFJS.getDocument({url: PDF_PATH}).then(function (pdf) {
var canvas = document.createElement("canvas");
canvas.setAttribute("id", "pageCanvas");
canvas.setAttribute('style', "display:none");
document.body.appendChild(canvas);
// Rendering all pages starting from first
var viewer = document.getElementById('viewer');
var pageNumber = 1;
renderPage(viewer, pdf, pageNumber++, function pageRenderingComplete() {
if (pageNumber > pdf.numPages) {
return; // All pages rendered
}
// Continue rendering of the next page
renderPage(viewer, pdf, pageNumber++, pageRenderingComplete);
});
});
}
document.addEventListener('DOMContentLoaded', function() {
if (typeof PDFJS === 'undefined') {
alert('Built version of PDF.js was not found.\n' +
'Please run `gulp generic`.');
return;
}
в d мой index.html просто загружает выше JS (form.js) и pdf.js и pdf.worker.js файлы
SERVER
Это содержит сервлет, в котором я сделал следующие
- Возможность искать и читать содержимое файла из определенного диапазона байтов путем получения значения из заголовка «Range» в запросе
- добавили
Accept-Range:Bytes
иAccess-Control-Allow-Headers:Accept-Ranges
значения в Heade ответа RS
Теперь я получил ударил в следующем
1.Where добавить значение заголовка "Range"?
2. Как отправить запрос диапазона от клиента?
3.Что эти звонки были сделаны?
4. Должен ли я включать viewer.html?
Пожалуйста, помогите мне с этим! Я рухнул :-(
См. Https://github.com/joepie91/pdfy/blob/master/public_html/modules/download.php как ссылку – async5
Я не знаю о PHP @ async5 .. Звучит очень ново для меня :-(Можете ли вы поделиться со мной другой ссылкой, пожалуйста ... – lsof
Ваш вопрос связан с возобновляемой загрузкой в java (не PDF или PDF.js). См. Http://stackoverflow.com/questions/5011446/java-server-side- send-file-with-resume-support/5013071 # 5013071 – async5