2015-10-02 2 views
2

Я пытаюсь преобразовать PDF-страницы в холст, используя pdf.js. Для достижения этого я использовал ответ в Render .pdf to single Canvas using pdf.js and ImageData от K3N. Код доступен здесь Fiddle1.Работает ли pdf.js с определенными pdf-файлами?

Проблема в том, что это, похоже, работает только с некоторыми PDF-файлами.

Например, код отлично подходит для http://arxiv.org/pdf/1207.0102v2.pdf в Fiddle2.

Однако, когда я пробовал тот же код для http://infolab.stanford.edu/pub/papers/google.pdf в Fiddle3, он не работал.

Почему это происходит и может быть исправлено?

ответ

4

Предполагается работать со всеми файлами PDF, если они не повреждены. Ошибка у вас есть здесь:

XMLHttpRequest cannot load http://infolab.stanford.edu/pub/papers/google.pdf. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://fiddle.jshell.net' is therefore not allowed access.

Другими словами, вы не можете загрузить это так, потому что http://infolab.stanford.edu/pub/papers/google.pdf не позволит вам сделать так. Когда вы будете иметь его на своем сервере и загрузите его с соответствующими заголовками ответов, он, скорее всего, сработает.

Для получения дополнительной информации об этой ошибке, обратитесь к Why am I seeing an "origin is not allowed by Access-Control-Allow-Origin" error here?


Если вы не размещаете эти файлы, вы можете направить их через прокси-сервер (который может быть приложением третьей стороны или сервер) , Например, Ivan Žužak, разработанный urlreq -a инструмент, который делает именно то, что нам нужно в этой ситуации.

Вместо того, чтобы использовать прямую ссылку на PDF-файл, используйте URL прокси Иванову:

http://urlreq.appspot.com/req?method=GET&url=http%3A%2F%2Finfolab.stanford.edu%2Fpub%2Fpapers%2Fgoogle.pdf

JSFIDDLE

+0

Есть ли способ, чтобы загрузить файл во время к моему серверу перед использованием pdf.js, а затем удалить его? – user3741635

+0

@ user3741635 Конечно, не фактическая загрузка, а сообщение от сети к ответу. Это можно сделать с помощью прокси. –

+0

@ user3741635 См. Обновленный ответ. :) –

Смежные вопросы