Pdf.js: Как заставить pdf.js работать?

Созданный на 24 июл. 2013  ·  29Комментарии  ·  Источник: mozilla/pdf.js

Дорогие все,

Я знал о pdf.js только сегодня утром, и он невероятно хорош; наверное будущее Pdf.

Я хотел клонировать демо, чтобы просто изменить исходную страницу в viewer.js.

Сначала я скачал изображения и элементы вручную - не заработало. Затем я загрузил zip-архив и много играл с папками web & src, но не получил ни к чему, так как каждый раз, когда я загружал их, я получал разные ошибки.

Окончательным решением было загрузить все элементы, относящиеся к демонстрационной странице, включая locale.properties, с помощью WinHTTrack, и теперь я получаю только следующее сообщение об ошибке: «InvalidPDFException».

Есть один парень, который разработал простую демонстрацию - я загрузил ее на свой сервер, и она работает как шарм. Проблема только в том, что это старая версия без предзагрузчика и вообще никакого дизайна, как у новой!

http://www.worldwidewhat.net/2011/08/render-pdf-files-with-html5/

Любая помощь очень ценится.

Все 29 Комментарий

Здесь можно сообщать об ошибках. Это не форум поддержки.
Пожалуйста, прочтите README на первой странице и посмотрите программу просмотра и примеры.
http://mozilla.github.io/pdf.js/web/viewer.html
http://jsbin.com/pdfjs-helloworld-v2/edit#html , в прямом эфире
http://jsbin.com/pdfjs-prevnext-v2/edit#html , в прямом эфире

Спасибо, Бенбро,
Я не знал этого - я просмотрел все документы поддержки безрезультатно.

Не могли бы вы предложить веб-сайт, который мог бы предложить такую ​​поддержку?
Заранее спасибо.

Вся информация, которую вы ищете, находится в README на первой странице:
https://github.com/mozilla/pdf.js/blob/master/README.md
Посмотрите в разделе вопросов.

@AliND Примеры, предоставленные @benbro, должны помочь. Действительно, лучше всего загрузить весь zip-архив или tp клонировать репозиторий. Я заставил его работать, просто клонировав репозиторий и запустив его на локальном экземпляре XAMPP. Не забывайте, что реальная программа просмотра находится в файле web/viewer.html , поэтому посещение корневой папки приведет только к списку папок.

Вы пытаетесь заставить его работать на веб-сервере или на локальном экземпляре XAMPP / WAMP? Пожалуйста, публикуйте любую дополнительную информацию (точные сообщения об ошибках / предупреждения с консоли и ОС / браузера), если вы продолжаете получать ошибки. Если вы загружаете его на веб-сервер, ссылка на программу просмотра также может помочь отследить любые проблемы. Мы будем рады помочь, если вы действительно не можете понять это самостоятельно. :)

@timvandermeij Прежде всего, я благодарю вас за ваш любезный ответ. Я также очень благодарен @benbro , но ссылки не помогли мне решить проблему.

Я заметил, что у многих людей (были) такая же проблема. У некоторых эта проблема оставалась нерешенной, а у тех, кто ее решал, не было показано шагов! Я считаю, что написание такого очень небольшого руководства о том, как заставить его работать для начинающих, было бы очень полезным.

@timvandermeij , по некоторым причинам я не могу установить XAMPP или любой другой серверный агент. Я только что создал бесплатную учетную запись, к которой вы можете получить доступ, указав следующие данные пользователя ftp:
Имена хостов: pdfjs.eu.pn
Имя пользователя FTP: 1468147_admin
Пароль FTP: hello123?

Я попробовал три разных подхода и получил три разных предупреждения в формате PDF:

1- Я загрузил все с помощью WinHTTrack, затем загрузил их и получаю эту ошибку:
http://pdfjs.eu.pn/pdf.js/web/viewer.html
или «InvalidPDFException». Однако странно, что я мог открыть его в автономном режиме (без установленного сервера) с помощью Safari, хотя это не совсем правильно.

2- Я получаю эту ошибку (без предупреждения), но страница не отображается
http://pdfjs.eu.pn/pdf2.js/web/viewer.html

3- Если я загружаю всю заархивированную папку (все файлы), я получаю эту ошибку:
[произошла ошибка при обработке этой директивы]
а затем дизайн теряется, все, что он показывает, - это кнопки и поля.

Я действительно ценю твою помощь.
Жду ваших предложений - Большое спасибо
АлиНД

Посмотрев на http://pdfjs.eu.pn/pdf.js/build/pdf.js , на вашем сервере есть "GET", замененный на "GET.html" (возможно, программа зеркалирования), например:

      };

      xhr.open('GET.html', this.url);
      for (var property in this.httpHeaders) {
        var value = this.httpHeaders[property];

А http://mozilla.github.io/pdf.js/build/pdf.js он без ".html". Закрытие вопроса как недействительного.

используйте git, чтобы вытащить ветку gh-страниц с производственным кодом: git clone -b gh-pages https://github.com/mozilla/pdf.js.git pdfjs-gh-pages

Большое спасибо @yurydelendik - я очень ценю ваш вклад.

Однако я новичок в php и javascript.

Я попробовал ваш совет (ПОЛУЧИТЬ), и он действительно полезен. Теперь загрузчик показывает, но не документ. Собственно, когда я впервые загрузил папки web и src, я сделал это, основываясь на вашей подсказке в следующем потоке:
https://github.com/mozilla/pdf.js/issues/2371 (обратите внимание, что в этом случае я получил следующую ошибку: [при обработке этой директивы произошла ошибка])

Я не знаю Юрия, но похоже, что многие новички сталкиваются с той же проблемой. Я имею в виду, я твердо верю, что есть простой способ, как в следующем примере (упомянутом ранее), где вы просто загружаете папки, чтобы заставить его работать, это будет очень полезно для меня, а также для многих других.
http://www.worldwidewhat.net/2011/08/render-pdf-files-with-html5/

Я не хочу показаться таким, как будто меня окружают дела других людей, но предоставление очень короткого руководства для начинающих на главной странице Pdf.js было бы очень полезно.

Независимо от того, решена моя проблема или нет, я благодарю вас всех за вашу любезную помощь.
Всего найлучшего//
АлиНД

Для новичков многое может пойти не так. Первое, что я рекомендую новичкам, - это следить за файлом README, часто задаваемыми вопросами и советами, содержащимися в проблемах. Удалось ли вам настроить node.js, клонировать проект с помощью git и построить его? Вы пробовали следовать моему совету использовать команду git выше?

Развертывание pdf.js на пользовательской платформе выходит за рамки этого проекта, однако мы будем рады принять подробные пошаговые инструкции от участников / экспертов для конкретной платформы (в форме вики-страницы). Если вы думаете, что мы чего-то упускаем, и знаете, как решить распространенный случай, создайте вики-страницу.

@AliND Кажется, вам не хватает некоторых файлов. Средство просмотра на http://pdfjs.eu.pn/pdf.js/web/viewer.html мне кажется нормальным, но консоль утверждает, что:

 «NetworkError: 404 Not Found - http://pdfjs.eu.pn/pdf.js/build/compressed.tracemonkey-pldi-09.pdf»

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

Вторая ссылка не работает, потому что вам не хватает следующих файлов:

 «NetworkError: 404 Not Found - http://pdfjs.eu.pn/pdf2.js/external/webL10n/l10n.js»
 l10n.js
 «NetworkError: 404 Not Found - http://pdfjs.eu.pn/pdf2.js/external/jpgjs/jpg.js»
 jpg.js
 «NetworkError: 404 Not Found - http://pdfjs.eu.pn/pdf2.js/external/webL10n/l10n.js»
 l10n.js
 «NetworkError: 404 Not Found - http://pdfjs.eu.pn/pdf2.js/external/jpgjs/jpg.js»

Пожалуйста, проверьте и убедитесь, что указанные файлы можно найти по этому пути. Насколько я могу судить, это должно сработать. Совет: используйте консоль Firefox ( CTRL + Shift + K ), чтобы увидеть ошибки, упомянутые выше; они помогут вам отследить любые проблемы.

@AliND http://pdfjs.eu.pn/pdf.js/web/viewer.html теперь частично работает, потому что я добавил файл PDF в каталог сборки. Тот факт, что это необходимо, может указывать на то, что в процессе сборки произошло что-то подозрительное. Я рассмотрю это немного подробнее и надеюсь дать вам лучший отзыв.

@AliND Вот и все: http://pdfjs.eu.pn/pdf3.js/web/viewer.html

Что я сделал:

  1. Загрузите https://github.com/mozilla/pdf.js/archive/master.zip.
  2. Извлеките это.
  3. Загрузите всю папку в папку pdf3.js в вашей учетной записи FTP (я пропустил два больших тестовых файла PDF, так как они не нужны, и у бесплатного FTP-сервера были некоторые проблемы с ними).

Ничего особенного, так странно, что у меня работает. Во второй ссылке определенно отсутствуют некоторые папки, поэтому это не сработало. Я понятия не имею, почему первая ссылка не работает должным образом, но я предполагаю, что сборка PDF.js не была полностью успешной.

Хотя это будет прекрасно работать, я согласен, что лучше его собрать, а не просто распаковывать. Я надеюсь, что вы можете поработать с этим сейчас. А пока я попробую самостоятельно собрать PDF.js и протестировать его на вашем сервере. Если я смогу заставить это работать, я также опубликую шаги, и, надеюсь, все проблемы будут исправлены :-)

@AliND У меня тоже работает https://github.com/mozilla/pdf.js/wiki/Setup-PDF.js-in-a-website-%28Debian-Ubuntu%29#wiki -Setup_testing_environnement, но это не дало мне хорошего результата. Я сделал следующее, чтобы заставить его работать на вашем сервере (ссылка здесь: http://pdfjs.eu.pn/pdf.js-build/web/viewer.html):

  1. Установите правильное окончание строки, если вы работаете в Windows, как я: git config --global core.autocrlf input (до следующего шага, иначе шаг 3 завершится ошибкой!).
  2. Клонируйте репозиторий из моей вилки, используя git clone https://github.com/timvandermeij/pdf.js.git (но вы должны использовать всегда актуальный репозиторий https://github.com/mozilla/pdf.js).
  3. Выполните команду make: node make generic .
  4. После этого я проигнорировал остальную часть https://github.com/mozilla/pdf.js/wiki/Setup-PDF.js-in-a-website-%28Debian-Ubuntu%29#wiki -Setup_testing_environnement, поскольку у меня это не сработало. Это не копирование нужных файлов. Я зашел в папку build/generic , созданную на шаге 3, и загрузил папки build и web на веб-сервер. Это сделало это.

Я надеюсь, что ваши проблемы будут решены, выполнив действия, описанные здесь и в моем предыдущем комментарии. Удачи (и простите за стену текста!). :-)

@yurydelendik Я также считаю, что руководство по адресу https://github.com/mozilla/pdf.js/wiki/Setup-PDF.js-in-a-website-%28Debian-Ubuntu%29#wiki -Setup_testing_environnement немного сбивает с толку. Например, в разделе From build to production вы копируете несколько файлов в производственный каталог, но сам pdf.js не копируется, в результате чего рабочий каталог содержит только файлы средства просмотра, а не файлы ядра. Я чувствую, что там не хватает ступеней. Не могли бы вы это проверить? Я также могу переписать страницу вики, используя описанные выше шаги, если хотите, потому что я думаю, что это будет более понятно для начинающих (или нам нужно расширить текущую страницу вики, добавив больше шагов для включения основных файлов).

@timvandermeij , значит, вы следовали инструкциям по установке ubuntu в Windows? да, для этого вам понадобится специальная среда для Windows (непросто настроить для новичков, например https://github.com/mozilla/pdf.js/wiki/Setting-up-pdf.js-Development-Environment-for -Окна). Да, вики сбивает с толку, но интерес к «среде тестирования» уже указывает на то, что вы не новичок. Но да, если вас это сбивает с толку и вы нашли правильный путь, внесите изменения (но в случае с окнами это заслуживает другой страницы вики)

Добавлена ​​запись в FAQ: https://github.com/mozilla/pdf.js/wiki/Frequent-Asked-Questions#wiki -gh-pages

@yurydelendik Спасибо. Я практически сделал то же самое в Windows, как, например, в Arch Linux, но я попробую расширить вики. :)

@yurydelendik Я расширил страницу инструкций Linux на https://github.com/mozilla/pdf.js/wiki/Setup-PDF.js-in-a-website-%28Linux%29, чтобы исправить проблемы, с которыми я столкнулся. это, а также исправить некоторые текстовые ошибки. Эта страница мне сейчас кажется хорошей. Позже в этот день я сделаю страницу того же типа, но затем сосредоточусь на Windows (что в настоящее время является делом). Надеюсь, добавление дополнительных инструкций вызовет меньше путаницы среди пользователей. :)

Изменить: вот версия для Windows: https://github.com/mozilla/pdf.js/wiki/Setup-PDF.js-in-a-website-%28Windows%29

Я надеюсь, что вы довольны изменениями, внесенными на страницы вики для Linux и Windows. Я думаю, что теперь их легче понять, и теперь у нас есть документация по Windows :)

@timvandermeij, спасибо за это.

@timvandermeij : То, что вы сделали, великолепно; спасибо за каждую секунду, которую вы там провели. Я на 100% уверен, что это будет полезно и многим другим. Идет проверка, скоро сообщу результат.

@yurydelendik : Большое спасибо за вклад, кажется, Тим все сделал!

Еще раз спасибо и всего наилучшего //
АлиНД

@AliND , @yurydelendik Очень рада помочь! Я действительно хотел бы услышать результат. :-)

@timvandermeij
Невероятно, все, что нужно было сделать, это вставить pdf-файл в папку сборки!

Единственные необходимые папки - это Интернет! и сборка (с созданием только pdf.js и файла pdf). Кроме того, папка locale (с locale.properties внутри, если мы копируем файл с github на локальный сервер) должна быть включена в веб-папку.

За этот довольно простой и понятный метод благодарим вас @yurydelendik за решение проблемы GET.html.

http://pdfjs.eu.pn/pdffinal/web/viewer.html

Но все же есть одна проблема: он отлично просматривается в Firefox, Chrome и Opera. Однако для Explorer и Opera есть две ошибки:
Safari: отсутствует PDF-файл sample.pdf. Но все равно загрузчик работает нормально!
Explorer: просто стиль, ничего не загружается!

Я имею в виду, мне кажется это странным, потому что есть файл compatibility.js, и мне интересно, что могло вызвать такое поведение в этих браузерах. В любом случае, я также загрузил все другие файлы и папки, но мне не повезло!

@timvandermeij : Если я использую ваш метод и загружаю всю папку, как я делал раньше, я получаю следующую ошибку в следующей ссылке. Пожалуйста, обратите внимание, что независимо от того, извлекаю ли я и загружаю или загружаю и извлекаю -> та же проблема. Кроме того, pdf.js-master.zip и mozilla-pdf.js-v0.5.5-1283-gc682c25.zip - это одни и те же файлы, поэтому мне интересно, почему сразу два.

Я просто не понимаю почему! Я даже загрузил загруженную вами папку pdf3.js, перезагрузил ее снова! и все равно не работает!

Я имею в виду, что меня действительно беспокоит причина, по которой он не работает с двумя другими браузерами!

Есть идеи?

@timvandermeij Я установил GIT и столкнулся с разными проблемами. Таким образом, я бы предпочел сосредоточиться на первом решении. Интересно, можете ли вы дать мне ответы на два следующих вопроса:
1- Есть ли причина, по которой ссылка, которую я опубликовал в предыдущем посте, не работает в IE и Safari?
2- Когда вы загрузили основную папку, внесли ли вы какие-либо изменения после этого?

Еще раз спасибо - я ценю вашу помощь, а также помощь

Всего найлучшего,
АлиНД

@timvandermeij @yurydelendik

У меня все заработало, спасибо, Тим - на этот раз я использовал инспектор элементов Safari, и по некоторым причинам он направлен на web / sample.pdf вместо build / sample.pdf. То же самое и с Internet Explorer! Обратите внимание, что внутренние ссылки в PDF-файле не работают в IE, но это не проблема.

Без всяких сомнений, метод сборки правильный, хотя можно создать отдельный viewer.js для каждого файла pdf.

Теперь, если вы перейдете на http://pdfjs.eu.pn/pdffinal/web/viewer.html , он будет работать во всех 5-ти упомянутых браузерах. (примечание: иногда браузеры не могут найти некоторые файлы на этом бесплатном сервере, но на платном сервере - все работает без проблем).

Для будущих пользователей простой способ:
1- Клонировать http://mozilla.github.io/pdf.js/web/viewer.html (можно использовать HTTrack).
2- У вас будет две папки: web и build (в последней будет pdf.js, что является наиболее важным - HTTrack в этом случае, объедините все действия сборки в этот файл)
2- Откройте pdf.js (папку сборки) и измените GET.html на GET.
3- Откройте viewer.js (веб-папка) и измените имя файла pdf на свое.
4- Поместите свой файл pdf как в Интернет (Safari и IE), так и в папки сборки (другие браузеры) (вы можете немного изменить, поместите pdf.js в веб-папку, тогда не нужно будет включать то же самое pdf дважды, но это может потребовать некоторой работы!)
5- Загрузить
6- Теперь он должен работать! обратите внимание, что этот метод может иметь недостатки, о которых я не подозреваю.

@timvandermeij Я просто не понимаю, почему это не работает, когда я загружаю главную папку !, потому что в вашем случае это работало безупречно!

В любом случае, большое спасибо за вашу помощь и поддержку, и я бы сказал это еще раз, согласно инструкциям @yurydelendik и @timvandermeij , «правильный метод» - это метод сборки; но так как я финансовый исследователь - я не могу глубоко разбираться в вопросах времени.

Еще раз спасибо и всем - всего наилучшего //
Али

@AliND Приятно, что у вас все заработало! Действительно, лучше всего использовать способ сборки, но и другой метод тоже должен работать нормально. Я ничего не сделал, кроме как скачать ZIP-файл и распаковать его на сервере. Других модификаций нет. Сработало безупречно, поэтому странно, что у вас не сработало. Однако самое главное, чтобы он работал во всех браузерах для ваших целей.

Также спасибо, что разместили здесь свои шаги. Это может помочь будущим пользователям, у которых все еще возникают проблемы с обновленными вики-страницами. Способ, описанный на вики-страницах, определенно является правильным и рабочим методом, но если по какой-то причине он у кого-то не работает, ваши шаги могут помочь.

Я не знаю, как неправильная ссылка на файл PDF может сломать только Safari и IE, но не другие браузеры. Возможно, в этой бесплатной учетной записи есть проблема, я не могу сказать.

Рад, что у вас все заработало, и всего самого наилучшего! :-)

@AliND Кроме того, обратите внимание, что адаптация viewer.js - не лучший способ. Вы можете загружать другие файлы, используя параметр file в URL-адресе, как описано в https://github.com/mozilla/pdf.js/wiki/Setup-PDF.js-in-a-website-% 28Linux% 29 # открытие -pdf-files-from-your-website. Таким образом, вы можете использовать один файл viewer.js и при этом открывать все нужные вам PDF-файлы.

@timvandermeij Еще раз

Собственно, ваш метод отлично работает на бесплатном сервере; Я только что попробовал, но на этот раз у меня проблема с платным сервером! Я только что открыл заявку в службу поддержки, чтобы они могли разобраться в проблеме.

Так что и для будущих пользователей, помимо метода сборки, то, что сделал @timvandermeij , отлично работает и намного проще, чем ранее упомянутый метод. Для справки:
1- Просто загрузите основной zip-файл, либо распакуйте его и загрузите, либо загрузите и распакуйте, если панель управления позволяет это (второй метод намного быстрее). Конечно, есть некоторые файлы и / или папки, которые не нужны, но просто загрузите все это: D.
2- Откройте viewer.js (в веб-папке) и измените имя PDF-файла на свое. Загрузите (повторно загрузите) этот viewer.js
3- Загрузите PDF-файл (с именем, указанным в шаге 2) в веб-папку.
4- Готово (если это не сработает, значит, проблема с вашим хостом; попробуйте бесплатный хост и убедитесь сами).

Еще раз спасибо Тим :)
Всего найлучшего//
Али

Вау, файловый метод действительно очень полезен! :)

@timvandermeij вы предоставили универсальное комплексное решение :)

Еще раз и еще раз спасибо и всего наилучшего //
АлиНД

Привет
В моем проекте мне нужно загрузить страницу pdf в iframe, поэтому я использовал функцию php file_get_contents для получения содержимого viewer.html. Но при загрузке pdf возникает ошибка
PDF.js v? (сборка:?)
Сообщение: InvalidPDFException
консоль как ниже,
Ошибка: недопустимый заголовок потока XRef util.js: 186
при ошибке (http://bacchus.weibo.com:8080/js/pdfjs/src/shared/util.js:188:15)
в Object.XRef_readXRef как readXRef
в Object.XRef_parse как синтаксический анализ
в Object.PDFDocument_setup в качестве настройки
в Object.PDFDocument_parse как синтаксический анализ
на http://bacchus.weibo.com : 8080 / js / pdfjs / src / core / pdf_manager.js: 106: 26
в LocalPdfManager_ensure, чтобы гарантировать
в LocalPdfManager.BasePdfManager_ensureDoc как secureDoc
на http://bacchus.weibo.com : 8080 / js / pdfjs / src / core / worker.js: 54: 22
так как я новичок в javascript, я не могу понять, почему это произошло, кто-нибудь может мне помочь?

@xiaotun Файл PDF поврежден. Пожалуйста, откройте новый выпуск и предоставьте более подробную информацию, такую ​​как название / версия ОС, версия PDF.js и название / версия браузера.

Я получаю предупреждение: TT: undefined function: 32 в консоли.

Не удалось загрузить источник "VM_Unknown": не удалось получить контент .. VM_ Unknown: 1
@ types / pdfjs-dist может быть проблемой, но он отображается в моем приложении angular как файл tgz в URL-адресе !!!

PDF-файл отображается в браузере нормально, но ввода формы нет!

Я пытался следовать этому руководству:
https://medium.com/factory-mind/angular-pdf-forms-fa72b15c3fbd

Была ли эта страница полезной?
0 / 5 - 0 рейтинги