我想在React应用程序中显示静态pdf . 我尝试过很多套餐:
反应-PDF
反应-PDF-JS
反应-PDF-JS-无限
简单反应的-PDF
pdfjs - 距离
反应-PDF,网页
他们经常说我们可以轻松地使用URL或pdf文件作为PDF组件的道具,但我也不能使用它们 .
我有两个主要错误 .
- 由于我想使用myPDF作为组件的道具,我写这个:
从'path / to / pdf_file'导入myPDF;
那么,render_some_component pdf:
这是错误:
Module parse中的ModuleParseError失败:意外的令牌(1:0)您可能需要一个适当的加载器来处理此文件类型 . (此二进制文件省略了源代码)
(当我评论该行时,这种错误消失了)
我在webpack配置中使用了文件加载器,我尝试了很多不同的方法,但都失败了 .
- 我直接使用pdf文件为这样的道具:
render_some_component pdf:{'path / to / pdf_file'}
- 在控制台中:
警告:设置假工作者 .
11:23:55.962 pdf.worker.js:349警告:忽略十六进制字符串中的无效字符“33”
11:23:55.963 pdf.worker.js:349警告:忽略十六进制字符串中的无效字符“79”
......有很多像这样的“忽略无效字符”,它始终以:
localhost /:1 Uncaught(在promise中)InvalidPDFException {name:“InvalidPDFException”,message:“Invalid PDF structure”}
- 在网络, Headers 中,我看到:
请求网址:http://localhost:3000/myPdfFile.pdf
请求方法:GET
状态代码:200 OK
远程地址:127.0.0.1:3000
- 但在网络,响应,我只看到HTML布局 .
我认为pdf文件已正确加载,但包无法识别其PDF结构 .
除了两个主要错误,我有另一个与包中使用的Worker相关的错误,但我不知道如何解决它:
未捕获的DOMException:无法构造'Worker'
(这与Chrome有关,因为人们说Chrome不允许本地服务器中的Worker)
任何帮助都非常感谢,因为我已经在4天内陷入困境 .
1 回答
你能否请求澄清你的主要任务是什么?如果我理解正确,您想要显示已存在于应用程序的一部分中的PDF文件?您不想使用JavaScript创建新的PDF .
如果您只想显示PDF,您是否尝试使用
iframe
?像这样的东西:您可以在此处使用从组件所在位置到文件的相对路径,或者使用完整URL到文件 .