C#压缩pdf文件的代码示例
开发学院2023-06-06 13:25:29
最近有压缩pdf的需求,上网找了下iTextSharp可以进行压缩,下面是实现代码,依赖版本:iTextSharp.5.5.13.3。
最近有压缩pdf的需求,上网找了下iTextSharp可以进行压缩,下面是实现代码,依赖版本:iTextSharp.5.5.13.3。
using iTextSharp.text;
using iTextSharp.text.pdf;
public void compressPdf(string inputFile, string outputFile)
{
using (FileStream fileStream = new FileStream(outputFile, FileMode.Create))
{
using (Document document = new Document())
{
PdfReader reader = new PdfReader(inputFile);
PdfWriter writer = PdfWriter.GetInstance(document, fileStream);
writer.SetPdfVersion(PdfWriter.PDF_VERSION_1_5);
document.Open();
for (int i = 1; i <= reader.NumberOfPages; i++)
{
PdfImportedPage importedPage = writer.GetImportedPage(reader, i);
PdfContentByte contentByte = writer.DirectContent;//.GetDirectContent();
PdfTemplate template = contentByte.CreateTemplate(importedPage.Width, importedPage.Height);
template.AddTemplate(importedPage, 0, 0);
contentByte.AddTemplate(template, 0.5f, 0, 0, 0.5f, 0, 0);
document.NewPage();
}
document.Close();
writer.Close();
reader.Close();
}
}
}
public void compressPdf2(String stringsourceFile,String stringdestinationFile) {
using (var sourceStream = new FileStream(stringsourceFile, FileMode.Open))
using (var destinationStream = new FileStream(stringdestinationFile, FileMode.Create))
{
var reader = new PdfReader(sourceStream);
var pdfStamper = new PdfStamper(reader, destinationStream, PdfWriter.VERSION_1_5);
pdfStamper.SetFullCompression();
pdfStamper.Close();
reader.Close();
}
Console.WriteLine("PDF compression complete.");
}相关文章
- spring+netty实现一个最小可运行的im server
- windows修改ollama程序和模型保存位置
- UE5中使用蓝图实现对象池功能
- UE5开发2D/3D混合平台跳跃游戏优化操作体验
- UE5敌人直接放置场景ok,代码生成不执行AI
- UE5中开发HD-2D游戏的优化设置与2D角色导入技巧
- nginxSpringboot项目常见配置
- 在MacOS上部署ComfyUI的指南
- 解决UE5开发Topdown2D动作游戏的旋转问题
- UE5开发2D游戏设置排序的步骤.
- 大幅提升FPS!Unreal Engine 5 最佳 2D 设置
- Aseprite在线编译教程
- 探索Nexa AI:开源边缘智能的新纪元
- Springboot项目允许根目录txt文件被访问
- lnmp一键安装包多php环境安装
- Python虚拟环境整合包制作:一键打包与运行指南
- aws云服务器使用root登录
- nginx配置允许跨域
- nginx配置springboot反向代理,同时允许上传路径可以直接被访问
- CentOS8更换国内安装源