.Net PdfiumViewer 打印时无法渲染电子签名问题的解决方法

news/2024/10/14 11:45:56

转载请标明原出处:https://www.cnblogs.com/crpfs/p/18463735

1. 先决条件

本文修改的动态库是从如下的 NuGet 包中获取的:

如果使用的是 Visual Studio 中的 NuGet 包管理器获取的,则其动态库(.dll)一般会存放在:

.\packages\PdfiumViewer.2.13.0.0\lib\net20\PdfiumViewer.dll

另外,还需要反编译动态库的工具:dnSpy,本文使用的是 dnSpy 作者弃坑后另一位佬接手重生的项目 dnSpyEx。

2. 解决方法

① 将动态库拖入 dnSpy,展开如下命名空间:

② 找到 PdfPrintDocument 类,展开,再找到 RenderPage 方法:

③ 右键 ==> 修改方法(C#),修改最后一行代码:

// 原本的代码
// this._document.Render(page, e.Graphics, e.Graphics.DpiX, e.Graphics.DpiY, new Rectangle(PdfPrintDocument.AdjustDpi((double)e.Graphics.DpiX, left), PdfPrintDocument.AdjustDpi((double)e.Graphics.DpiY, top), PdfPrintDocument.AdjustDpi((double)e.Graphics.DpiX, num3), PdfPrintDocument.AdjustDpi((double)e.Graphics.DpiY, num4)), PdfRenderFlags.ForPrinting | PdfRenderFlags.Annotations);// 修改后的代码
using (Image image = this._document.Render(page, PdfPrintDocument.AdjustDpi((double)e.Graphics.DpiX, (double)e.PageBounds.Width), PdfPrintDocument.AdjustDpi((double)e.Graphics.DpiX, (double)e.PageBounds.Height), e.Graphics.DpiX, e.Graphics.DpiY, PdfRotation.Rotate0, PdfRenderFlags.ForPrinting | PdfRenderFlags.Annotations))
{
e.Graphics.DrawImageUnscaled(image, e.PageBounds.Location);
}

④ 在菜单栏选择 文件 ==> 保存模块,直接点确定即可重新编译动态库。

注意:会直接覆盖原先的动态库,如需要则注意备份。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/71389.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

现代化 React UI 库:Material-UI 详解!

随着 React 在前端开发中的流行,越来越多的 UI 框架和库开始涌现,以帮助开发者更高效地构建现代化、响应式的用户界面。其中,Material-UI 是基于 Google Material Design 规范设计的一款开源 React UI 库,Github Star高达 94K,凭借其丰富的组件库、灵活的定制化选项以及无…

将html元素保存为图片

初始需求是echarts绘制的图表保存为图片, 后来发现,echarts图标之外,还有一个参数input/button也要放到图片中 于是,技术实现从简单的《echarts导出为图片》 变成了较为复杂的《html元素导出为图片》先放出已经实现的《echarts导出为图片》的代码,// 导出 图片generatePic…

第十期机器学习基础 02注意力机制和Transformer/Bert

一:注意力机制 (一)前提背景 1.人类的选择性视觉注意力 视觉注意力机制是人类视觉所特有的大脑信号处理机制。人类视觉通过快速扫描全局图像,获得需要重点关注的目标区域,也就是一般所说的注意力焦点,而后对这一区域投入更多注意力资源,以获取更多所需要关注目标的细节信…

查找大量时序遥感文件缺失、不连贯的成像日期:Python代码

本文介绍批量下载大量多时相的遥感影像文件后,基于Python语言与每一景遥感影像文件的文件名,对这些已下载的影像文件加以缺失情况的核对,并自动统计、列出未下载影像所对应的时相的方法~本文介绍批量下载大量多时相的遥感影像文件后,基于Python语言与每一景遥感影像文件的文…

AI智能照片放大软件--Topaz Gigapixel AI macOS苹果电脑安装包(含激活秘钥)

Topaz Gigapixel AI是一款功能强大的图像无损放大工具,具有以下功能特色:首先,它利用人工智能技术,能自动识别并增强图像中的细节,包括纹理、边缘等,同时减少噪声,使图像更加清晰细腻。其次,软件支持超高放大倍率,最高可达600%,且放大后的图像质量依然保持优秀。此外…

四、Spring Boot集成Spring Security之认证流程

Spring Security详细认证过程:包括登录时每个过滤器处理流程及业务处理和登出时每个过滤器处理流程及业务处理二、概要说明本文主要介绍登录登出业务流程,所以使用基于内存的用户名密码,暂不介绍授权相关内容,后续会详细介绍基于数据库的认证及授权 如何查看基于内存的默认…

IT产品自动化解决方案【Sakura Automation Platform】助力研发团队高效完成工作

Sakura Automation Platform 是一站式持续自动化平台,涵盖 APP自动化、WEB自动化、API接口自动化、性能自动化,并且支持分布式测试,全面兼容 Appium、Selenium、Rest Assured、JMeter 等主流开源框架,有效助力开发和测试团队充分利用云弹性进行高度可扩展的自动化测试,加速…