C# 压缩PDF文档

小咪咪 2024-02-18 22:02 73阅读 0赞

PDF文档是我们日常办公中经常用到的文档,有时候PDF文档过大,就不利于传输和发送。这篇文章将介绍如何使用C#和Spire.PDF组件压缩PDF文档。

Spire.PDF中主要有两种压缩方式:一种是压缩文件内容,另一种是压缩文件中的图片,其中压缩图片又分为降低图片质量和直接压缩两种不同的方式。需要注意的是,针对不同的文档压缩效果会有所区别,主要和pdf内容本身关系比较大,如文档中是文字较多还是图片较多的效果都是不同的,可以根据自己的文档选择相应的压缩方式。

在使用以下代码前,需要:

  1. 下载Spire.PDF,并从安装路径下引用Spire.Pdf.dll到应用程序

  2. 引用命名空间:

    using System.Drawing;
    using Spire.Pdf;
    using Spire.Pdf.Exporting;
    using Spire.Pdf.Graphics;

压缩内容

  1. //加载PDF文档
  2. PdfDocument doc = new PdfDocument("Test.pdf");
  3. //禁用incremental update
  4. doc.FileInfo.IncrementalUpdate = false;
  5. //设置PDF文档的压缩级别
  6. doc.CompressionLevel = PdfCompressionLevel.Best;
  7. //保存文档
  8. doc.SaveToFile("Compressed.pdf");

70

压缩图片

方法一:降低图片质量

  1. //加载PDF文档
  2. PdfDocument doc = new PdfDocument("Image.pdf");
  3. //禁用incremental update
  4. doc.FileInfo.IncrementalUpdate = false;
  5. //遍历文档所有页面
  6. foreach (PdfPageBase page in doc.Pages)
  7. {
  8. //提取页面中的图片
  9. Image[] images = page.ExtractImages();
  10. if (images != null && images.Length > 0)
  11. {
  12. //遍历所有图片
  13. for (int j = 0; j < images.Length; j++)
  14. {
  15. Image image = images[j];
  16. PdfBitmap bp = new PdfBitmap(image);
  17. //降低图片的质量
  18. bp.Quality = 20;
  19. //用压缩后的图片替换原文档中的图片
  20. page.ReplaceImage(j, bp);
  21. }
  22. }
  23. }
  24. //保存文档
  25. doc.SaveToFile("Output.pdf");

70 1

方法二:直接压缩图片

  1. //加载PDF文档
  2. PdfDocument doc = new PdfDocument("Image.pdf");
  3. //禁用incremental update
  4. doc.FileInfo.IncrementalUpdate = false;
  5. //遍历PDF页面
  6. foreach (PdfPageBase page in doc.Pages)
  7. {
  8. if (page != null)
  9. {
  10. if (page.ImagesInfo != null)
  11. {
  12. foreach (PdfImageInfo info in page.ImagesInfo)
  13. {
  14. //压缩图片
  15. page.TryCompressImage(info.Index);
  16. }
  17. }
  18. }
  19. }
  20. //保存文档
  21. doc.SaveToFile("Output1.pdf");

70 2

发表评论

表情:
评论列表 (有 0 条评论,73人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C# 如何压缩PDF文件

    压缩PDF文件能有效减小文件大小,从而提高传输效率并节省存储空间。本文将介绍使用C#快速压缩 PDF 文件的步骤并提供完整测试代码,实现最大程度压缩PDF文档。

    相关 C# 压缩PDF文档

    PDF文档是我们日常办公中经常用到的文档,有时候PDF文档过大,就不利于传输和发送。这篇文章将介绍如何使用C\和Spire.PDF组件压缩PDF文档。 Spire.PDF中主

    相关 Java 压缩PDF文档

    PDF文档是我们日常办公中使用最频繁的文档格式。但因为大多数PDF文档都包含很多页面图像或大量图片,这就导致PDF文档过大,在传输或者下载过程中速度会变慢,也会增加传输失败的风