首页 > 编程语言 >C#使用PdfPig分割合并PDF

C#使用PdfPig分割合并PDF

时间:2024-06-01 15:11:07浏览次数:22  
标签:文件 C# builder var 重新排列 PdfPig PDF

使用打印机扫描双面文档后,页码是交错且倒置的,因此想到使用C#获取PDF页面后重新排列,组成符合预期的PDF文件。基本思想就是分别获取2个PDF文档的页码,然后根据页码规则重新生成PDF文件。

经查询发现PdfPig库能够轻松实现PDF文件重新排列,该类库基于Apache-2.0 license,GitHub上有1.5k Stars,地址为:https://github.com/UglyToad/PdfPig

下面是使用PdfPig进行PDF文件重新排列的示例代码:

private async Task MergePdfAsync()
{
    //打开PDF文件
    using var document1 = PdfDocument.Open(@"D:\test1.pdf");
    using var document2 = PdfDocument.Open(@"D:\test2.pdf");

    //创建PDF文档
    var builder = new PdfDocumentBuilder();
    for (var i = 0; i < document1.NumberOfPages; i++)
    {
        builder.AddPage(document1, i + 1);
        builder.AddPage(document2, 5 - i);
    }

    //保存PDF文件
    var documentBytes = builder.Build();
    await File.WriteAllBytesAsync(@"newPdf.pdf", documentBytes);
}

标签:文件,C#,builder,var,重新排列,PdfPig,PDF
From: https://www.cnblogs.com/xhubobo/p/18225996

相关文章

  • epoll IO多路复用机制的C尝试
    https://github.com/zongzw-learn/learn-ccpp/tree/main/epoll-testEpoll工作于socket和用户逻辑之间,就像多socket的调度管理工具。epoll运行在内核空间。通过以上repo我们可以知道如何使用epoll的三个关键API另外还需要知道epoll的核心数据结构:双向链表和红黑树。知道epoll......
  • 正则对cpu的消耗
    背景:正则对于cpu的消耗,其中的资源占比较高。如果数据量庞大且正则复杂的时候,那么idle会消耗殆尽。-----以下为正文正则表达式(regex)是一种强大且灵活的模式匹配工具,广泛用于文本处理。然而,正则表达式的处理可以对CPU造成显著的消耗,尤其在处理复杂的模式或大型输入时。以......
  • C语言文件操作指南:读写与管理
    在C语言编程中,文件操作是一个重要的主题。无论是读取配置文件、记录日志,还是处理大量数据,文件操作都是必不可少的。本文将介绍C语言中文件操作的基本概念和常用方法,帮助你轻松掌握这项技能。一、文件操作的基本概念在C语言中,文件操作主要包括以下几步:打开文件:创建一个文件指......
  • 关于Camunda
    Camunda事务编排平台,交付形态有saas和public/privatecloud方式,通过UI可以编排基于bpmn和dmn文件格式的业务流文件,业务流(process)通过生成task的方式根据用户输入的参数和预定义的流程完成一系列复杂的任务。https://github.com/zongzw-learn/learn-camunda.git以上代码中,使用go......
  • C++生产者消费者模型
    这里模拟了一个队列,5个消费者线程和5个生产者线程来共同使用队列里面的数据处理。包括了阻塞和非阻塞的出队入队方法。注意在添加线程时使用到了std::ref引用,在传参给线程时不能直接传入queue的引用,要使用std::ref才是真正意义上的引用,当直接使用queue编译器是不会通过的,因为其实......
  • 关于GOGC的几点认识
    以下理解来自https://tip.golang.org/doc/gc-guide文章并不好理解。。go的标准库runtime提供了GC的相关能力。栈上的空间不归GOGC管,GOGC只考虑heap空间。所谓的transitive性质:部分衍生空间会纳入到GOGC回收中。GOGC使用tracinggarbagecollection的方式。GC需要关注的......
  • Docker安装Jenkins详解
    目录Docker安装Jenkins1.下载Jenkins2、创建挂载目录3、启动Jenkins容器4、验证Jenkins容器是否启动成功5、获取管理员密码6、修改插件源7、登录web页面8、插件推荐Docker安装Jenkins话不多说,下面直接开始1.下载Jenkins使用下面命令,让docker拉取镜像,dockerpulljenkins/jenkins......
  • C++:最小公倍数与最大公约数
    最大公约数(GreatestCommonDivisor,GCD)最小公倍数(LeastCommonMultiple,LCM)#include<iostream>//函数:计算两个数的最大公约数(GCD),这被称为欧几里得算法intgcd(inta,intb){if(b==0)returna;returngcd(b,a%b);}//函数:计算两个数的......
  • logging.basicConfig()
    logging.basicConfig() 是Python标准库 logging 模块中的一个函数,用于配置日志记录器(logger)的基本选项。这个函数允许你在不创建和配置多个logger、handler和formatter的情况下,快速地为你的应用程序设置日志记录。以下是一些 basicConfig() 的常见参数:filename:指......
  • LeetCode 704 二分查找
    第一次提交错误:if-else语句中第二个if前未加else,导致循环出错//二分查找//有序情况下的查找方式,时间复杂度O(logn)//注意左右边界以及停止循环条件left<=right classSolution{publicintsearch(int[]nums,inttarget){......