0

我正在构建一个应用程序,它将在服务器上具有交互式 PDF 表单(在 HTML、CSS、JS 中)。我一直在尝试使用 Grapecity PDF 查看器,但无济于事。我使用以下资源将文档跟踪到 T :one , two , three

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, shrink-to-fit=no">
    <meta name="theme-color" content="#000000">
    <title>GC Viewer Demo | PDF Plugin</title>
    <link rel="stylesheet" href="https://cdn.materialdesignicons.com/2.8.94/css/materialdesignicons.min.css">
    <script>
        function loadPdfViewer(selector) {
            var viewer = new GcPdfViewer(selector, { renderInteractiveForms: true });
            viewer.addDefaultPanels();
            viewer.open("HelloWorld.pdf");
        }
    </script>
  </head>
  <body onload="loadPdfViewer('#root')">
    <div id="root"></div>
    <script type="text/javascript" src="gcpdfviewer.js"></script>
  </body>
</html>

我目前在与上述 index.html 相同的文件夹中有“HelloWorld.pdf”和 gcpdfviewer javascripts 但每次我在浏览器中测试代码时,PDF 查看器都会加载,但 PDF 没有,给我一个错误说明“缺少 PDF”。

这真的让我很困扰,因为我认为 PDF 正是它应该在的地方。

我目前没有使用许可证密钥,但文档看起来好像我不需要一个。也许这就是问题所在。

有任何想法吗?

编辑 - 以下是 Chrome 中的控制台错误:

The pdf worker has been disabled. Note, rendering PDF in foreground thread can slow pdf viewer performance.
ce @ gcpdfviewer.js:1
index.html:1 Access to XMLHttpRequest at 'file:///C:/HelloWorld.pdf' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
HelloWorld.pdf:1 Failed to load resource: net::ERR_FAILED
index.html:1 Uncaught (in promise) V
4

3 回答 3

2

感谢您使用 GCPDF 查看器。文件名是否完全相同,可能是区分大小写的操作系统?您能否在浏览器网络选项卡中查看要检索 PDF 文件的请求,它是否在您放置文件的同一位置查找。您正在运行哪个服务器软件?它是否提供 PDF 文件?

http://www.grapecity.com

于 2020-08-17T00:28:04.920 回答
2

首先,问题不是因为非许可证版本。出现此问题的原因是您尝试使用文件系统在本地执行示例。为了克服这个问题,您应该将应用程序托管在本地服务器上,并且 Pdf 将加载到 PdfViewer 中。在 PdfViewer 中加载 Pdf 时,有 XMLHttpRequest 检查来源。在文件系统的情况下这是空的。因此,在访问文件时抛出错误。这是配置 PdfViewer 的文档链接: https ://www.grapecity.com/documents-api-pdf/docs/online/view-pdf.html

问候,

马尼什·古普塔

于 2020-08-17T07:00:09.993 回答
1

如前所述,出于安全原因,无法通过 JavaScript 访问本地文件系统上的文件,您需要设置 Web 服务器并使用 Web 服务器 url 打开 PDF 文件。

但如果你真的想这样做,还有另一种解决方法——在禁用网络安全的情况下启动 Chrome,然后从本地文件系统打开 index.html 页面,例如:

"c:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir="C:/temp/CustomChromeSession" --disable-web-security "file:///C:/temp/gcpdfviewer-test/index.html"

请注意,出于安全原因,不建议使用此解决方法,浏览器开发人员可以稍后禁用此方法。

这是它如何工作的屏幕截图

于 2020-08-20T10:55:15.220 回答