"Missing PDF" 每次使用Grapecity PDF Viewer
"Missing PDF" every time I use Grapecity PDF Viewer
我正在构建一个将在服务器上具有交互式 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>
我目前在与上述相同的文件夹中有“HelloWorld.pdf”和 gcpdfviewer javascripts index.html但是每次我在浏览器中测试代码时,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
感谢您使用 GCPDF 查看器。文件名是否完全相同,可能是 case-sensitive OS?
您能否查看浏览器网络选项卡并查看检索 PDF 文件的请求,它是否在您放置文件的同一位置查找。
您 运行 是哪个服务器软件?它提供 PDF 文件吗?
首先,问题不是因为non-license版本。
出现此问题是因为您尝试使用文件系统在本地执行示例。要解决这个问题,您应该在本地服务器上托管应用程序,Pdf 将加载到 PdfViewer 中。
在 PdfViewer 中加载 Pdf 时,有 XMLHttpRequest 检查来源。对于文件系统,这是空的。因此,在访问文件时抛出错误。
这是配置 PdfViewer 的文档 link:
https://www.grapecity.com/documents-api-pdf/docs/online/view-pdf.html
此致,
马尼什古普塔
如前所述,出于安全原因,无法通过 JavaScript 访问本地文件系统上的文件,您需要设置网络服务器并使用网络服务器打开 PDF 文件 url.
但如果您真的想这样做,还有另一种解决方法 - 启动 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"
请注意,出于安全原因,不推荐使用此解决方法,浏览器开发人员以后可以禁用此方法。
Here's a screenshot of how it works
我正在构建一个将在服务器上具有交互式 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>
我目前在与上述相同的文件夹中有“HelloWorld.pdf”和 gcpdfviewer javascripts index.html但是每次我在浏览器中测试代码时,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
感谢您使用 GCPDF 查看器。文件名是否完全相同,可能是 case-sensitive OS? 您能否查看浏览器网络选项卡并查看检索 PDF 文件的请求,它是否在您放置文件的同一位置查找。 您 运行 是哪个服务器软件?它提供 PDF 文件吗?
首先,问题不是因为non-license版本。 出现此问题是因为您尝试使用文件系统在本地执行示例。要解决这个问题,您应该在本地服务器上托管应用程序,Pdf 将加载到 PdfViewer 中。 在 PdfViewer 中加载 Pdf 时,有 XMLHttpRequest 检查来源。对于文件系统,这是空的。因此,在访问文件时抛出错误。 这是配置 PdfViewer 的文档 link: https://www.grapecity.com/documents-api-pdf/docs/online/view-pdf.html
此致,
马尼什古普塔
如前所述,出于安全原因,无法通过 JavaScript 访问本地文件系统上的文件,您需要设置网络服务器并使用网络服务器打开 PDF 文件 url.
但如果您真的想这样做,还有另一种解决方法 - 启动 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"
请注意,出于安全原因,不推荐使用此解决方法,浏览器开发人员以后可以禁用此方法。
Here's a screenshot of how it works