C# iText split PDF C# 拆分PDF
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的更多相关文章
- C# 合并及拆分PDF文件
C# 合并及拆分PDF文件 有时我们可能会遇到下图这样一种情况 — 我们需要的资料或教程被分成了几部分存放在多个PDF文件中,不管是阅读还是保存都不是很方便,这时我们肯定想要把这些PDF文件合并为一个 ...
- Java 合并、拆分PDF文档
处理PDF文档时,我们可以通过合并的方式,来任意组几个不同的PDF文件或者通过拆分将一个文件分解成多个子文件,这样的好处是对文档的存储.管理很方便.下面将通过Java程序代码介绍具体的PDF合并.拆分 ...
- [.NET开发] C# 合并、拆分PDF文档
在整理文件时,将多个同类型文档合并是实现文档归类的有效方法,也便于文档管理或者文档传输.当然,也可以对一些比较大的文件进行拆分来获取自己想要的部分文档.可以任意地对文档进行合并.拆分无疑为我们了提供极 ...
- C# 合并和拆分PDF文件
一.合并和拆分PDF文件的方式 PDF文件使用了工业标准的压缩算法,易于传输与储存.它还是页独立的,一个PDF文件包含一个或多个"页",可以单独处理各页,特别适合多处理器系统的工作 ...
- 【使用Itext处理PDF文档(新建PDF文件、修改PDF文件、PDF中插入图片、将PDF文件转换为图片)】
iText简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文件转 ...
- 如何把PDF文件拆分为多个文件
一个PDF文件有很多个PDF页面组成,有时候我们只需要单个页面的时候应该怎么做呢,这个时候就需要拆分PDF文件了,那么如何把 PDF文件拆分为多个文件呢,应该有很多的小伙伴都想知道吧,那就让我们一起来 ...
- itext A4纸张横向创建PDF
import java.awt.Color;import java.io.FileOutputStream;import java.io.IOException; import com.lowagie ...
- Java iText+FreeMarker生成PDF(HTML转PDF)
1.背景 在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等.方便用户查看,下载,打印.目前常用的解决方案是,把相关数据信息,生成对应的pdf文件返回给用户. ...
- 基于iTextSharp的PDF操作(PDF打印,PDF下载)
基于iTextSharp的PDF操作(PDF打印,PDF下载) 准备 1. iTextSharp的简介 iTextSharp是一个移植于java平台的iText项目,被封装成c#的组件来用于C#生成P ...
随机推荐
- wpf listview images
<ListView x:Name="lv"> <ListView.ItemsPanel> <ItemsPanelTemplate> <St ...
- .NET MVC5简介(六)HttpHandler
浏览器到网站程序 上一篇中,介绍IHttpModule的时候,自定义一个类CustomHttpModule继承自IHttpModule,自定义一个事件,并配合配置文件,就可以执行自定义Module中的 ...
- Google在情报搜集中的基础技巧
Google在情报搜集中的基础技巧 作者:王宇阳 时间:2019-06-06 作者笔记 Google Hacking 是指使用特定的高级的google搜索语法,收集渗透测试目标的信息,查找目标的配 ...
- debian 10 安装fcitx 后设置
设置好代理后 apt-get install fcitx 后 仍然看不到 语言栏 可能是 在设置fcitx时 的字体太小了 输入法配置 ->外观->字体 加大 即可
- MQTT linux centOS7 部署
系统版本centos7 X64 1.设置保存安装包路径 # cd /usr/local/src 2.开始下载源包 官网资源: https://mosquitto.org/files/source/ # ...
- Java面试之synchronized 和 static synchronized
面试题: 答案: 不能 不能 不能 不能 能 正文 概述 通过分析这两个用法的分析,我们可以理解java中锁的概念.一个是实例锁(锁在某一个实例对象上,如果该类是单例,那么该锁也具有全局锁的概念), ...
- 11.Java基础_IDEA常用快捷键
/* 内容辅助键: psvm 回车 : 快速生成main方法: sout 回车 : 快速生成输出代码 Ctrl+Alt+Space : 内容提示,代码补全 快捷键: 注释: 单行: 选中代码, Ctr ...
- 初学JavaScript正则表达式(七)
量词 例: \d{20}\w\d?\w+\d*\d{3}\w{3,5}\d{3,} 20次数字字符 单词字符 出现零次或一次数字字符 至少出现一次单词字符 出现任意次数字字符 出现3次数字字符 出现3 ...
- 利用java程序构造mysql测试数据
package com.baidu.mysql;import java.sql.*; public class MysqlJdbc { /** * @param args */ public stat ...
- angular 使用ng-zorro的from组件 运行报错
emplate parse errors: Can't bind to 'formGroup' since it isn't a known property of 'form'. 原因:没有导入表单 ...