如果是 还用 方法都在这里
var pdfViewer = new PdfiumViewer.PdfViewer();

在 wpf下使用嵌入view 的方法 :
"通过 NuGet 安装核心包和原生依赖:
csharp
Install-Package PdfiumViewer
Install-Package PdfiumViewer.Native.x86_64.v8-xfa(或者根据你的目标平台选择 x86)
在 WPF 的 XAML 中使用 WindowsFormsHost 承载:
csharp
<Grid>
<WindowsFormsHost x:Name="pdfHost" />
</Grid>
把相关控件放到指定winform控件内:
csharp
var pdfViewer = new PdfiumViewer.PdfViewer();
pdfViewer.Document = PdfiumViewer.PdfDocument.Load("你的文件路径.pdf");
pdfHost.Child = pdfViewer;
- 限制界面上的打印按钮(UI 层面)
如果你使用的是 PdfiumViewer 自带的 PdfViewer 控件,无法直接隐藏或禁用工具栏上的打印按钮。因为 PdfViewer 是一个封装好的"开箱即用"控件,其工具栏功能是内置且受限的,不支持直接修改或隐藏特定按钮。
💡 解决方案:使用底层 PdfRenderer 控件自定义界面
如果你希望完全控制工具栏(例如去掉打印按钮),建议放弃直接使用 PdfViewer,转而使用更底层的 PdfRenderer 控件。PdfRenderer 只负责 PDF 的渲染,不包含默认工具栏,你可以自己编写 WPF 或 WinForms 的 UI 来搭配它。
实现思路:
在 WindowsFormsHost 中承载 PdfRenderer 控件。
在 WPF 中自己绘制工具栏(添加缩放、翻页等按钮,但不添加打印按钮)。
通过代码将 PdfRenderer 与你的自定义按钮绑定。
// 后台代码示例:加载文档到 PdfRenderer(没有默认打印按钮)
csharp
var document = PdfiumViewer.PdfDocument.Load("你的文件路径.pdf");
pdfRenderer1.Document = document;//如果此段有问题未找到这个属性 咱们可以用另一种方式: _pdfViewer.Load(_pdfDocument);
这样,界面上就彻底没有了打印按钮,用户无法通过 UI 触发打印。
- 限制 PDF 文件本身的打印权限(文件安全层面)
仅仅隐藏界面上的打印按钮是不够的,用户依然可以通过快捷键(如 Ctrl + P)或者通过其他 PDF 阅读器打开文件来打印。如果你想从根本上限制打印,需要对 PDF 文件本身设置安全权限。
使用PdfRenderer 的操作方法是:(其实与上面PdfViewer操作相同)
csharp
// 放大按钮点击事件
private void BtnZoomIn_Click(object sender, RoutedEventArgs e)
{
pdfRenderer.ZoomMode = PdfViewerZoomMode.Custom; // 切换到自定义模式
pdfRenderer.Zoom += 0.1; // 每次点击放大 10%
}
// 缩小按钮点击事件
private void BtnZoomOut_Click(object sender, RoutedEventArgs e)
{
pdfRenderer.ZoomMode = PdfViewerZoomMode.Custom;
if (pdfRenderer.Zoom > 0.2) // 设置一个最小缩放限制
{
pdfRenderer.Zoom -= 0.1; // 每次点击缩小 10%
}
}
// 适应宽度按钮点击事件
private void BtnFitWidth_Click(object sender, RoutedEventArgs e)
{
pdfRenderer.ZoomMode = PdfViewerZoomMode.FitToWidth;
}