- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有一个基于 GWT 框架构建的应用程序,我们希望在其中显示 PDF 文件而无需任何浏览器插件,目前正在评估 PDF.js 来实现这一点。问题是,无论我做什么,我都无法在我们的 GWT 应用程序中将 PDF 文件渲染到 Canvas 上。请提供一些背景
使用此脚本从服务器检索 PDF.js 文件票证并将其嵌入到 HTML 正文中
var head= document.getElementsByTagName('body')[0];
var script= document.createElement('script');
script.type= 'text/javascript';
script.setAttribute('charset', 'UTF-8');
script.src=url;
head.appendChild(script);
在 View 中创建 Canvas 元素(此处使用 googles MVP 模式)并使用上述函数对将 PDF.js 嵌入 HTML 主体的脚本进行 JSNI 调用。然后脚本调用与 PDF.js 文件中定义的 PDFJS 类一起工作的函数。
在canvas上渲染PDF文件的函数如下:
PDFJS.disableWorker = true;
PDFJS.getDocument(url).then(function getPdfHelloWorld(pdf)
{
pdf.getPage(1).then(function getPageHelloWorld(page)
{
var scale = 1.25;
var viewport = page.getViewport(scale);
canvas.height = viewport.height;
canvas.width = viewport.width;
page.render({canvasContext: context, viewport: viewport});
page.startRendering(context);
alert("Finished rendering");
});
});
Canvas 和上下文在 View 类中创建并传递给 javascript。
这里的问题是,在调用 JSNI 之后,我会显示所有变量的警报。浏览器显示警报,除非我发出调用警报(PDFJS)。这表明脚本中未识别 PDFJS 变量。这让我觉得 PDF.js 文件没有正确嵌入 View 中,或者我还缺少其他东西。
注意:我已经从网上下载了大部分示例,其中大部分都在本地运行,即我可以修改 PDF.js 文件路径以获取本地副本,HTML 仍然呈现 PDF。读取 PDFJS 变量没有问题。我只是在这个 GWT 应用程序中看到了这些问题。
有没有人知道发生了什么事。非常感谢您的帮助。
谢谢
最佳答案
您的问题是您正在注入(inject)脚本,因此它会异步加载,但您不会等到它加载后才开始使用它。
尝试使用 ScriptInjector.FromUrl
注入(inject)脚本并将其余代码放入 Callback
的 onSuccess
。
同步注入(inject)脚本(通过将它添加到您的 HTML 主机页面,或 GWT 模块描述符——注意:不会与 xsiframe
链接器一起工作——),正如 Ilya 所建议的那样当然也是一个解决方案。
关于gwt - 带有 GWT 应用程序的 PDF.js 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13642772/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!