C# PDF添加骑缝章

2023-10-29

许多比较重要的文件比如合同等都有多页,在签订合同时,为了防止造假或更换页面,我们通常会选择给合同文件加盖骑缝章。这篇文章将介绍如何使用.NET PDF组件Spire.PDF for .NET在C#应用程序中实现给PDF合同文件加盖骑缝章。

引用DLL

在使用以下代码前,需要引用Spire.PDF for .NET组件的DLL文件到工程中。官网可以下载最新版的DLL文件,下载地址。此外,也可以通过NuGet Package Manager搜索Spire.PDF for .NET然后点击安装。

示例代码

using System.Collections.Generic;
using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Graphics;

namespace PagingSeal
{
    class Program
    {
        static void Main(string[] args)
        {
            //加载PDF文档 
            PdfDocument doc = new PdfDocument();
            doc.LoadFromFile("Input.pdf");            
                        
            PdfUnitConvertor convert = new PdfUnitConvertor();
            PdfPageBase pageBase = null;

            //获取分割后的印章图片
            Image[] images = GetImage(doc.Pages.Count);
            float x = 0;
            float y = 0;

            //将图片画到PDF页面上的指定位置
            for (int i = 0; i < doc.Pages.Count; i++)
            {
                pageBase = doc.Pages[i];
                x = pageBase.Size.Width - convert.ConvertToPixels(images[i].Width, PdfGraphicsUnit.Point) - 40;
                y = pageBase.Size.Height / 2;
                pageBase.Canvas.SetTransparency(0.2f, 0.2f, PdfBlendMode.Normal);//设置透明度
                pageBase.Canvas.DrawImage(PdfImage.FromImage(images[i]), new PointF(x, y));
            }

            //保存PDF文件
            doc.SaveToFile("Output.pdf");
            doc.Close();
        }
        //定义GetImage方法,根据PDF页数分割印章图片
        static Image[] GetImage(int num)
        {
            List lists = new List();
            Image image = Image.FromFile("SealImage.jpg");
            int w = image.Width / num;
            Bitmap bitmap = null;
            for (int i = 0; i < num; i++)
            {
                bitmap = new Bitmap(w, image.Height);
                using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap))
                {
                    g.Clear(Color.White);
                    Rectangle rect = new Rectangle(i * w, 0, w, image.Height);
                    g.DrawImage(image, new Rectangle(0, 0, bitmap.Width, bitmap.Height), rect, GraphicsUnit.Pixel);
                }
                lists.Add(bitmap);
            }
            return lists.ToArray();
        }
    }
}

加盖骑缝章效果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# PDF添加骑缝章 的相关文章

  • 如何使用MemoryCache代替Timer来触发一个方法?

    以下方法通过等待已运行操作的结果来处理并发请求 对数据的请求可能会使用相同 不同的凭据同时出现 对于每组唯一的凭据 最多可以有一个GetCurrentInternal呼叫正在进行中 当准备就绪时 该呼叫的结果将返回给所有排队的服务员 pri
  • C++ 中本地类中的静态成员变量?

    我知道我们不能宣布static本地类中的成员变量 但其原因尚不清楚 那么请问有人可以解释一下吗 另外 为什么我们不能访问非static函数内部定义的变量 内部已经定义了局部类 直接在局部类成员函数中 在下面给出的代码中 int main i
  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • 将内置类型转换为向量

    我的 TcpClient 类接受vector
  • 用于检查项目文件中的项目变量和引用路径的 api

    我正在研究一个 net application VS2010 与 x 没有 解和变量号这些解决方案中的项目数量 我需要检查项目属性 特定于一定数量的项目 是否同质 并且检查 验证构建期间的参考路径 有没有一个API是这样的吗 如果没有 我该
  • C# Dns.GetHostEntry 不返回连接到 WiFi 的移动设备的名称

    我有一个 C 中的 Windows 窗体应用程序 我试图获取列表中所有客户端的主机名 下面给出的是 ra00l 来自此链接的代码示例 GetHostEntry 非常慢 https stackoverflow com questions 99
  • 无法在 Windows 运行时组件库的 UserControl 中创建依赖项属性

    我想在用户控件内创建数据可绑定属性 这个用户控件包含一个 Windows 运行时组件 项目 我使用下面的代码来创建属性 public MyItem CurrentItem get return MyItem GetValue Current
  • 上下文敏感与歧义

    我对上下文敏感性和歧义如何相互影响感到困惑 我认为正确的是 歧义 歧义语法会导致使用左推导或右推导构建多个解析树 所有可能的语法都是二义性的语言是二义性语言 例如 C 是一种不明确的语言 因为 x y 总是可以表示两个不同的事物 如下所述
  • 使用 Moq 使用内部构造函数模拟类型

    我正在尝试模拟 Microsoft Sync Framework 中的一个类 它只有一个内部构造函数 当我尝试以下操作时 var fullEnumerationContextMock new Mock
  • 如何使用 Mongodb C# 驱动程序连接多个集合

    我需要将 3 个集合与多个集合合并在一起 lookup我在 C 驱动程序中尝试过 它允许我 lookup用户采集但无法执行秒 lookup用于设置集合 有人可以帮忙吗 db Transactions aggregate lookup fro
  • 等待线程完成

    private void button1 Click object sender EventArgs e for int i 0 i lt 15 i Thread nova new Thread Method nova Start list
  • 私有模板函数

    我有一堂课 C h class C private template
  • std::async 与重载函数

    可能的重复 std bind 重载解析 https stackoverflow com questions 4159487 stdbind overload resolution 考虑以下 C 示例 class A public int f
  • (de)从 CSV 序列化为对象(或者最好是类型对象的列表)

    我是一名 C 程序员 试图学习 C 似乎有一些内置的对象序列化 但我在这里有点不知所措 我被要求将测试数据从 CSV 文件加载到对象集合中 CSV 比 xml 更受青睐 因为它更简单且更易于人类阅读 我们正在创建测试数据来运行单元测试 该集
  • Process.Start() 方法在什么情况下返回 false?

    From MSDN https msdn microsoft com en us library e8zac0ca v vs 110 aspx 返回值 true 表示有新的进程资源 开始了 如果由 FileName 成员指定的进程资源 St
  • 编译时“strlen()”有效吗?

    有时需要将字符串的长度与常量进行比较 例如 if line length gt 2 Do something 但我试图避免在代码中使用 魔法 常量 通常我使用这样的代码 if line length gt strlen Do somethi
  • Xcode 11 PDF 图像资源“保留矢量数据”在 SwiftUI 中不起作用?

    我正在尝试在 Xcode 11 中使用 SwiftUI 的应用程序中使用 Single Scale 来使用基于矢量的 PDF 图像 但当我放大图像尺寸时 图像总是看起来模糊 我在 Xcode 11 的 UIKit 中没有遇到任何问题 我创建
  • 线程和 fork()。我该如何处理呢? [复制]

    这个问题在这里已经有答案了 可能的重复 多线程程序中的fork https stackoverflow com questions 1235516 fork in multi threaded program 如果我有一个使用 fork 的
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良

随机推荐

  • HTML/CSS 一个非常漂亮的户信息输入页面(含照片)

    第一次发博客 有什么问题还请大神指出 先上效果图 代码部分
  • 数字信号处理(一)利用FFT对信号进行频谱分析

    数字信号处理 一 利用FFT对信号进行频谱分析 1 实验目的 1 进一步加深DFT算法原理和基本性质的理解 因为FFT只是DFT的一种快速算法 所以FFT的运算结果必然满足DFT的基本性质 2 熟悉FFT算法原理和FFT程序的应用 3 学习
  • PJNATH库关于NAT穿越问题及解决方案

    PJNATH 关于NAT穿越的简介 NAT和NAT穿越简介 NAT穿越问题 对等地址问题 发夹 行为 对称行为 绑定超时 NAT穿越解决方案 旧STUN RFC 3489 STUN STUNbis RFC 5389 旧TURN TURN B
  • matlab随机森林特征选择,使用随机森林做特征选择

    目录 一 介绍 随机森林模型不仅在预测问题上有着广泛的应用 在特征选择中也有一定的应用 这是因为 随机森林模型在拟合数据后 会对数据属性列 有一个变量重要性的度量 在sklearn中即为随机森林模型的 feature importances
  • 兼容移动端:hover

    场景 react实例 对于一个列表 加上选中高亮样式 1 pc端 鼠标滑过高亮 2 移动端 点击div任意位置 整行高亮 问题描述 在移动端 hover属性生效了 黑色的边框border 如图 原因分析 在移动端 hover的优先级高于cl
  • R语言生成50名学生成绩(包含学号、性别、数学、C语言、计算机基础和英语),计算学生平均成绩并排名,计算每科最高(低)分、均值、方差,简单相关性分析

    num lt seq 1 50 18170001 生成学号 gender lt round runif 50 min 1 max 2 生成男女性别1代表男 2代表女 math lt round runif 50 min 50 max 100
  • 手把手教你用Python提取PDF中的表格

    前言 pdfplumber 是一个开源的 python 工具库 它可以轻松的获取 PDF 文本内容 标题 表格 尺寸等各种信息 今天来介绍如何使用它来提取 PDF 中的表格 安装 首先通过下面命令安装 pdfplumber 模块 pip i
  • Selenium4.9.1-元素定位方法大全

    一 在selenium里面使用什么方法进行元素定位 1 单个元素定位 find element 2 多个元素定位 find elements 二 在selenium里面有7种元素定位方式 1 ID定位 find element By ID
  • c语言gets,getc,C语言的getc()函数和gets()函数的使用对比

    C语言getc 函数 从流中读取字符头文件 include 函数getc 用于从流中取字符 其原型如下 int getc FILE stream 参数 参数 steam为要从中读取字符的文件流 返回值 该函数执行成功后 将返回所读取的字符
  • 利用python+flask搭建mock接口服务

    1 测试需求来源 测试环境进行某后端服务的测试 某些功能依赖其他系统的输出数据 由于线下测试环境网络隔离等原因 无法实时获取依赖系统的数据 基于此种情况 需要通过搭建一套接口服务模拟出依赖系统的输出数据 以供被测系统调用 因此选择pytho
  • QT 界面刷新

    QT对界面的调整有很多种形式 如果发现界面样式不正常 通过缩放窗口 或者某项鼠标操作才正常 可能是你的窗口没有正常刷新 可以试试以下方法 1 update 函数 实质上是调用了repaint函数 但是不是同步的 就是repaint函数可能不
  • 华为OD机试 Python 【计算最接近的数】

    描述 你手里拿着一副扑克 你要找到连续K张牌的组合 它们之间的点数差距最接近中间那张牌 给你一堆数字组成的数组X和一个数字K 你要找出连续K个数字 使它们的组合差最接近这堆数字的中间数 如果有多个组合 那就给我最后一个组合的起始位置 例如
  • 数据挖掘论文matlab,数据挖掘论文3000字范文参考

    数数据挖掘通常与计算机科学有关 并通过统计 在线分析处理 情报检索 机器学习 专家系统和模式识别等诸多方法来实现上述目标 本文精选几篇关于数据发掘论文范文供大家学习一下 数据挖掘论文一 数据挖掘中的属性选择偏差抑制算法研究 摘要 决策树算法
  • 05、建立模块

    在上一节中 我们学会了在电路图中嵌入了计算公式 本节我们将在此基础上 将闭环BUCK电路的反馈网络建立成一个模块 然后我们以后就可以直接调用模块来实现电路的设计了 好了 下面我们就一步一步的来实现此功能吧 Step 01 建立一个原理图文件
  • go第三方库文档 json处理json-iterator

    package main import fmt jsoniter github com json iterator go strings type data struct F43 float64 json f43 F80 string js
  • git保存用户名和密码,不用每次输入账号

    实验环境 window10 安装git tortoiseGit 打开 gitconfig 在 credential 下增加一项 helper store
  • c语言程序设计答辩时我要说什么,实训答辩的流程开场白

    毕业论文答辩开场白和结束语 各位老师 下午好 我叫 是知 级 班的学生 我的论文题目是 论文是在 导师的悉心指点下完成的 在这里我向我的导师表示深深的谢意 向各位老师不辞辛苦参加我的论文答辩表示衷心的感谢 并对四年来我有机会聆听教诲的各位老
  • [需求管理-6]:需求分析 - 技术可行性研究与方案设计模板

    目录 第1章 技术可行性研究概述 1 1 什么是可行性研究 1 2 什么是技术可行性研究 1 3 技术可行性研究发生的时机和条件 1 4 为什么要做技术可行性研究 1 5 核心概念澄清 1 5 UML与系统架构描述 第2章 技术可行性研究范
  • 为什么ChatGPT的用户体验如此强大

    短短三个月的时间 OpenAI的应 ChatGPT就获得了大量的用户 人气的迅速上升导致一些人预测 ChatGPT 不仅会扰乱搜索引擎 还会扰乱电子学习 写作和编辑等领域 该软件不仅是一个有趣的聊天机器人 您可以与之进行有趣的对话 而且还是
  • C# PDF添加骑缝章

    许多比较重要的文件比如合同等都有多页 在签订合同时 为了防止造假或更换页面 我们通常会选择给合同文件加盖骑缝章 这篇文章将介绍如何使用 NET PDF组件Spire PDF for NET在C 应用程序中实现给PDF合同文件加盖骑缝章 引用