Я пытаюсь показать статический PDF-файл в приложении React. Я перепробовал много пакетов:
реагировать-pdf
реагировать-pdf-js
реагировать PDF-JS-бесконечный
простой-реагировать-pdf
pdfjs-dist
реагировать-pdf-страницы
Они часто говорят, что мы можем легко использовать URL-адрес или файл pdf для реквизита для компонента PDF, но я не могу использовать ни то, ни другое.
У меня было две основных ошибки.
Поскольку я хочу использовать myPDF для свойств компонента, я пишу следующее:
импортировать myPDF из 'path / to / pdf_file';
затем render_some_component pdf: {myPDF}
Вот ошибка:
Ошибка ModuleParseError в синтаксическом анализе модуля: неожиданный токен (1: 0). Для обработки этого типа файла может потребоваться соответствующий загрузчик. (Исходный код для этого двоичного файла опущен)
(Когда я прокомментирую эту строку, такая ошибка исчезает)
Я использовал загрузчик файлов в конфигурации webpack, я пробовал много разных способов, но потерпел неудачу.
Я использую файл pdf непосредственно для таких реквизитов:
render_some_component pdf: {'путь / к / pdf_file'}
- In the Console:
Предупреждение: настройка поддельного воркера.
11: 23: 55.962 pdf.worker.js: 349 Предупреждение. Игнорирование недопустимого символа «33» в шестнадцатеричной строке.
11: 23: 55.963 pdf.worker.js: 349 Предупреждение: игнорирование недопустимого символа «79» в шестнадцатеричной строке
... Есть много таких "Игнорирование недопустимого символа", и оно всегда заканчивается:
localhost /: 1 Неперехваченное (в обещании) InvalidPDFException {имя: "InvalidPDFException", сообщение: "Недопустимая структура PDF"}
- В Сети, Заголовки, я вижу:
URL-адрес запроса: http://localhost:3000/myPdfFile.pdf
Метод запроса: ПОЛУЧИТЬ
Код состояния: 200 ОК
Удаленный адрес: 127.0.0.1: 3000
- но в Сети, Ответе, я вижу только макет HTML.
Я думаю, что файл pdf загружен правильно, но пакет не может распознать его структуру PDF.
За исключением двух основных ошибок, у меня была еще одна ошибка, связанная с Worker, используемым в пакетах, но я не знаю, как ее исправить:
Неперехваченное исключение DOMException: не удалось создать рабочий
(Это связано с Chrome, поскольку люди говорят, что Chrome не разрешает Worker на локальном сервере)
Любая помощь приветствуется, так как я застрял в этом уже через 4 дня.