有没有办法设置谷歌浏览器默认 pdf 视图的样式?我正在尝试将灰色背景颜色更改为白色,如果可能的话,也使移动设备的滚动条更大一些。
我试图在没有运气的情况下将其定位在 CSS 上
// pdf viewer custom style
iframe {
html {
body {
background-color: #ffffff !important;
}
#zoom-toolbar {
display: none !important;
}
#zoom-buttons {
display: none !important;
}
}
}
看起来它正在 html 上创建影子文档,但我找不到任何方法来定位它
原文由 Tan Kucukhas 发布,翻译遵循 CC BY-SA 4.0 许可协议
无法直接设置 Chrome 默认 PDF 查看器 (PDFium) 的样式。因为插件显示和控制的内容超出了当前页面的 DOM 范围,所以只能由插件修改。如此处 所示,除非插件还添加了允许页面将消息传递给插件的内容脚本,否则无法对此类插件控制的内容进行修改;插件必须另外编程以响应消息并适当地更新内容。换句话说,PDF 查看器使用一个单独的 DOM 来访问不可直接访问的页面。相反,您需要访问已实现的 API。
在 本次 讨论中,Mike West(Google/Chromium 开发人员)在回答有关 Chrome 的 PDF 查看器中 DOM 可访问性的问题时表示:
基本 API 函数是 Adobe 在其 打开 PDF 文件的参数中 指定的一些函数,可通过 URL 访问(例如
http://example.org/doc.pdf#page=3&pagemode=thumbs
。如上所述,它们非常有限,允许用户直接访问如果您知道可用的 JavaScript 消息,则可以通过内容脚本消息访问扩展的 API。可用 JS 消息名称的完整列表可以从相关的 PDFium 源中确定可以看出,查看器的高级样式,例如改变颜色,是不可能的。( 这个 问题给出了一个如何实现API的例子)。当然没有访问PDFium的DOM。此 API 故意未记录在案;它可能随时随着添加或删除而改变。因此,虽然将来可能会有一个 API 让您对查看器的某些方面进行样式设置,但不太可能会更改背景颜色或修改 CSS 阴影。而且,如上所述,如果没有 API,当您无权访问其 DOM 时,您无法修改由插件控制的内容。
相反,您可能希望尝试 PDF.js。 它是一个开源 JavaScript 库,使用 HTML5 Canvas 呈现 PDF 文件。它也是 Firefox 的默认 PDF 查看器,功能强大。
将其实现为 Web 应用程序超出了此问题的范围,但有许多有用的教程可用。而且,作为开发人员,您将有权访问所有组成文件,您当然可以随意设置 PDF.js 查看器的样式。