可以的,但要分两种情况说清楚,因为这取决于你用的是 Chrome 内置 PDF Viewer,还是自己接管渲染。JxBrowser 本质是嵌入式 Chromium,它不会直接给你一个“隐藏 PDF 工具栏”的现成 API,但有几种可行且常用的方案。
一、如果你现在是「直接打开 PDF URL」👉官方工具栏是关不掉的
典型情况:
browser.navigation().loadUrl("file:///xxx.pdf"); // 或 http(s)://xxx.pdf
这时显示的是Chrome 内置 PDF Viewer,顶部会有:
翻页
下载
打印
旋转
标签页
👉结论很重要:
❌JxBrowser / Chromium 没有提供 API 可以隐藏这些按钮
这是 Chromium 的安全设计,避免网页控制浏览器级功能。
JxBrowser 官方也明确过:
Built-in PDF Viewer UI cannot be customized or hidden.
二、推荐方案 ①:禁用内置 PDF Viewer,用「网页方式」自己渲染(强烈推荐)
思路
关闭 Chromium 内置 PDF Viewer
用
pdf.js或 EPUB.js 在普通网页里渲染你想要什么 UI 就画什么 UI
1️⃣ 禁用内置 PDF Viewer
EngineOptions options = EngineOptions.newBuilder(RenderingMode.HARDWARE_ACCELERATED) .enablePdfViewer(false)
.build();
Engine engine = Engine.newInstance(options);
这样:
打开 PDF 不会再走 Chrome Viewer
会当成普通文件 / 流处理
2️⃣ 用 pdf.js 自己渲染 PDF(UI 完全可控)
HTML 示例(嵌在 JxBrowser 里):
<div id="viewer"></div> <script src="pdf.min.js"></script> <script> pdfjsLib.getDocument("xxx.pdf").promise.then(pdf => { pdf.getPage(1).then(page => { const canvas = document.createElement("canvas"); const ctx = canvas.getContext("2d"); const viewport = page.getViewport({ scale: 1.5 }); canvas.height = viewport.height; canvas.width = viewport.width; page.render({ canvasContext: ctx, viewport }); document.getElementById("viewer").appendChild(canvas); }); }); </script>
你可以:
❌ 不做下载
❌ 不做打印
✅ 只做翻页 / 目录 / 书签
✅ 做成纯阅读器
📌这是做“专业阅读器”的标准做法
三、推荐方案 ②:EPUB → EPUB.js(更适合你这种阅读器场景)
如果你是:
PDF / EPUB / 网页 → 统一阅读器
那 EPUB 本身就不该用 Chrome Viewer。
EPUB.js 优点
分页 / 滚动 / 双页
字体、行距、主题
无任何浏览器级工具栏
const book = ePub("xxx.epub"); const rendition = book.renderTo("reader", { width: "100%", height: "100%" }); rendition.display();
📌 非常适合你“嵌入式 Chrome 阅读器”的定位。
四、方案 ③:拦截下载 / 打印(只能限制行为,不能隐藏按钮)
如果你暂时不能重构,只能:
禁止下载
browser.downloads().set(DownloadCallback.class, params -> { return DownloadCallback.Response.cancel(); });
禁止打印
只能:
禁掉
window.print()或 OS 层面限制
👉但按钮仍然会显示(只是点了没反应)
五、哪种方案最适合你?(结合你现在的背景)
你之前提过:
在做EPUB → PDF 批量转换
在做整体阅读生态
用 JxBrowser 做嵌入式阅读
👉最优架构建议(很符合你现在的方向):
网页 / EPUB / PDF ↓ 统一转为 HTML 渲染层 ↓ JxBrowser 只负责显示 ↓ 阅读 UI 全你控制
也就是说:
❌ 不用 Chrome PDF Viewer
✅ JxBrowser = 壳
✅ 阅读能力在你自己的前端层
六、一句话结论(很重要)
JxBrowser 里 Chrome 自带的 PDF 工具栏,不能隐藏
要想“干净阅读器”,只能禁用内置 Viewer,用 pdf.js / EPUB.js 自己渲染
如果你愿意,我可以直接帮你设计一套:
PDF / EPUB / HTML统一阅读框架
JxBrowser + 前端阅读层
类似微信读书 / Apple Books 的结构
这个方向,其实非常适合你现在在做的“整体生态”。