Nuget install iText7

using iText.Kernel.Pdf;

using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;
using iText.Kernel.Utils;
using iText.Kernel.Pdf;
using System.IO;
using System.Web.UI;
using System.Windows.Forms; class Program
{
static void Main(string[] args)
{
UltimateITextSplitPDF();
Console.ReadLine();
} static void UltimateITextSplitPDF()
{
string rawPdfFile = @"D:\C\C\ConsoleApp1\EJATT.pdf";
Program objProvider = new Program();
objProvider.PDFSplitExample(rawPdfFile);
} void PDFSplitExample(string rawPdfFile)
{
if(!File.Exists(rawPdfFile))
{
return;
}
MCSPdfSplitter mcsPdfSplitterProvider;
//Generated physical split pdf files by GetNextPdfWriter of MCSPdfSplitter
using (var pdfDoc = new PdfDocument(new PdfReader(rawPdfFile)))
{
mcsPdfSplitterProvider = new MCSPdfSplitter(pdfDoc, rawPdfFile);
var splitPdfDocs = mcsPdfSplitterProvider.SplitByPageCount();
foreach (var splitPDF in splitPdfDocs)
{
splitPDF.Close();
}
} mcsPdfSplitterProvider.SplitPdfNamesList.ForEach(x =>
{
if (File.Exists(x))
{
byte[] pdfByte = File.ReadAllBytes(x);
Console.WriteLine($"Before delete,Name {x},length {pdfByte.Length}");
File.Delete(x);
}
});
}
}

using iText.Kernel.Utils;
using System;
using System.Collections.Generic;

namespace ConsoleApp1
{
public class MCSPdfSplitter : PdfSplitter
{
private int _pageNumber;
private string _rawPdfFile;
public List<string> SplitPdfNamesList = new List<string>();
public MCSPdfSplitter(PdfDocument pdfDocument, string rawPdfFile) : base(pdfDocument)
{
_rawPdfFile = rawPdfFile;
}

protected override PdfWriter GetNextPdfWriter(PageRange documentPageRange)
{
_pageNumber++;
string splitPDFFileName = _rawPdfFile.Substring(0,_rawPdfFile.LastIndexOf(".pdf"))+ _pageNumber+"split" + Guid.NewGuid().ToString().Replace("-", "") + ".pdf";
SplitPdfNamesList.Add(splitPDFFileName);
return new PdfWriter(splitPDFFileName);
}
}
}

C# iText split PDF C# 拆分PDF的更多相关文章

  1. C# 合并及拆分PDF文件

    C# 合并及拆分PDF文件 有时我们可能会遇到下图这样一种情况 — 我们需要的资料或教程被分成了几部分存放在多个PDF文件中,不管是阅读还是保存都不是很方便,这时我们肯定想要把这些PDF文件合并为一个 ...

  2. Java 合并、拆分PDF文档

    处理PDF文档时,我们可以通过合并的方式,来任意组几个不同的PDF文件或者通过拆分将一个文件分解成多个子文件,这样的好处是对文档的存储.管理很方便.下面将通过Java程序代码介绍具体的PDF合并.拆分 ...

  3. [.NET开发] C# 合并、拆分PDF文档

    在整理文件时,将多个同类型文档合并是实现文档归类的有效方法,也便于文档管理或者文档传输.当然,也可以对一些比较大的文件进行拆分来获取自己想要的部分文档.可以任意地对文档进行合并.拆分无疑为我们了提供极 ...

  4. C# 合并和拆分PDF文件

    一.合并和拆分PDF文件的方式 PDF文件使用了工业标准的压缩算法,易于传输与储存.它还是页独立的,一个PDF文件包含一个或多个"页",可以单独处理各页,特别适合多处理器系统的工作 ...

  5. 【使用Itext处理PDF文档(新建PDF文件、修改PDF文件、PDF中插入图片、将PDF文件转换为图片)】

    iText简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件转 ...

  6. 如何把PDF文件拆分为多个文件

    一个PDF文件有很多个PDF页面组成,有时候我们只需要单个页面的时候应该怎么做呢,这个时候就需要拆分PDF文件了,那么如何把 PDF文件拆分为多个文件呢,应该有很多的小伙伴都想知道吧,那就让我们一起来 ...

  7. itext A4纸张横向创建PDF

    import java.awt.Color;import java.io.FileOutputStream;import java.io.IOException; import com.lowagie ...

  8. Java iText+FreeMarker生成PDF(HTML转PDF)

    1.背景 在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等.方便用户查看,下载,打印.目前常用的解决方案是,把相关数据信息,生成对应的pdf文件返回给用户. ...

  9. 基于iTextSharp的PDF操作(PDF打印,PDF下载)

    基于iTextSharp的PDF操作(PDF打印,PDF下载) 准备 1. iTextSharp的简介 iTextSharp是一个移植于java平台的iText项目,被封装成c#的组件来用于C#生成P ...

随机推荐

  1. python基础(5):格式化输出、基本运算符、编码问题

    1. 格式化输出 现在有以下需求,让⽤户输入name, age, job,hobby 然后输出如下所⽰: ------------ info of Alex Li ----------- Name : ...

  2. node开发基础概念

    1.以严格模式运行一个js文件 node --use_strict xxx.js 2.退出node交互模式 连续按两次Ctrl+C. 3,node.js的模块不支持ES6的export.import规 ...

  3. vue快速复习手册

    1.基本使用 <!DOCTYPE html> <head> <meta charset="UTF-8"> <title>Vue的基本 ...

  4. 0基础入门学习Python(第1-2章)

    第一章:就这么愉快的开始吧 1.1获取Python Python3.7 1.2从idle启动 Python 3.7.3 (default, Mar 27 2019, 09:23:39)[Clang 1 ...

  5. 使QScrollArea的背景透明,并且不影响子控件

    使QScrollArea的背景透明,乍看很easy,其实却是一个目前百度上百不出来的问题; 最容易想到的,用qss: scrollArea->setStyleSheet("backgr ...

  6. Java实现MapReduce Wordcount案例

    先改pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://ww ...

  7. 初识 RESTful API规范

    简介 一种软件架构风格.设计风格,而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制. rest是一种 ...

  8. pugixml的简单使用

    一.简介 pugixml的官方主页为:http://pugixml.org/ pugixml是一个很棒的XML操作库, 它很轻量,只有三个文件(pugiconfig.hpp   pugixml.cpp ...

  9. 项目那几步走:先配置setting路径文件、创建数据库、执行数据库迁移命令、配置mysql数据库信息、注册app、注释中间件、pymysql替换mysqldb-配置urls路由-继续视图函数-然后HTML页面展示-HTML里面导入css文件、models配置数据库表、

    django使用mysql数据库: 首先cmd创建库 1.settings: """Django settings for day42 project. Generate ...

  10. Vue的实例对象(三)

    一.创建一个 Vue 实例 每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例开始的: var vm = new Vue({ // 选项 }) 当创建一个 Vue 实例时,你可以传入 ...