• C# 压缩PDF文件


    PDF 文件可以包含文本、图片及各种媒体元素,但如果文件太大则会影响传输效果同时也会占用过多磁盘空间。通过压缩PDF文件,能够有效减小文件大小,从而提高传输效率并节省存储空间。想要通过C#代码快速有效地压缩 PDF 文件,下面是实现思路:

    在 C# 中压缩 PDF

    1、在VS中使用 NuGet包管理器将 “spire.pdf” 安装到程序中,并导入所需的命名空间。(也可下载Spire.PDF后手动引入);

    2、实例化 PdfCompressor 类对象并加载需压缩的PDF文件;

    3、通过 TextCompressionOptions 类来压缩PDF文件中的字体;

    1. //获取文本压缩选项
    2. TextCompressionOptions textCompression = compressor.Options.TextCompressionOptions;
    3. //设置是否压缩字体
    4. textCompression.CompressFonts = true;
    5. //设置是否嵌入字体
    6. textCompression.UnembedFonts = true;

    4. 通过 ImageCompressionOptions 类来压缩PDF文件中的图片;

    1. //获取图片压缩选项
    2. ImageCompressionOptions imageCompression = compressor.Options.ImageCompressionOptions;
    3. //设置是否压缩图片
    4. imageCompression.CompressImage = true;
    5. //设置图片质量
    6. imageCompression.ImageQuality = ImageQuality.Low;
    7. //设置是否调整图片大小
    8. imageCompression.ResizeImages = true;

    5. 保存压缩后的PDF文件。

    PDF压缩前后效果对比如图:

    ▶ Spire.PDF for .NET 优化了压缩PDF文件的方法,在压缩PDF中的图片时,将图片质量设置为 low, 压缩效果最好,但可能文件可读性会受到一定影响。在使用时可根据自己的需求来设置图片质量 (High/ Medium/ Low)。

    附上完整代码供自行测试:

    1. using Spire.Pdf;
    2. using Spire.Pdf.Conversion.Compression;
    3. namespace CompressPdf
    4. {
    5. class Program
    6. {
    7. static void Main(string[] args)
    8. {
    9. //实例化 PdfCompressor 类对象并加载PDF文件
    10. PdfCompressor compressor = new PdfCompressor("文件.pdf");
    11. //获取文本压缩选项
    12. TextCompressionOptions textCompression = compressor.Options.TextCompressionOptions;
    13. //设置是否压缩字体
    14. textCompression.CompressFonts = true;
    15. //设置是否嵌入字体
    16. textCompression.UnembedFonts = true;
    17. //获取图片压缩选项
    18. ImageCompressionOptions imageCompression = compressor.Options.ImageCompressionOptions;
    19. //压缩图片
    20. imageCompression.CompressImage = true;
    21. //设置图片质量
    22. imageCompression.ImageQuality = ImageQuality.High;
    23. //调整图片大小
    24. imageCompression.ResizeImages = true;
    25. //将压缩后PDF保存至指定位置
    26. compressor.CompressToFile("压缩.pdf");
    27. }
    28. }
    29. }

    想了解C#操作PDF文件的更多示例,点击前往Spire.PDF教程页

  • 相关阅读:
    std::declval 源码分析
    回调函数(callback functions)的理解和使用
    阿里 Java 程序员进阶笔记!计算机基础 +OS+ 算法数据结构
    单细胞数据分析(一):10X数据生成seurat数据对象
    [4G/5G/6G专题基础-156]: 什么是物理层信道评估
    「聊设计模式」之桥接模式(Bridge)
    H.265 视频在浏览器中的播放问题探究
    新 树莓派4B 温湿度监测 基于debian12的树莓派OS
    李开复:我家的AI是坠吼的
    【JAVA基础】【查漏补缺】03 - 数组
  • 原文地址:https://blog.csdn.net/Eiceblue/article/details/134283713