C#-PDF转图片

1.引用:Aspose.PDF,版本:11.1.1.0

 1         /// <summary>
 2         /// Pdf转图片
 3         /// </summary>
 4         /// <param name="sourcePath"> PDF 文件路径 </param>
 5         /// <param name="imageSavePath">图片保存的路径 </param>
 6         /// <returns></returns>
 7         public bool PdfToPic(string sourcePath, string imageSavePath)
 8         {
 9             try
10             {
11                 new Aspose.Pdf.License().SetLicense(new MemoryStream(Convert.FromBase64String(AppConfig.AsposeKey)));
12 
13                 if (!File.Exists(sourcePath)) return false;
14 
15                 Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(sourcePath);
16 
17                 for (int pageCount = 1; pageCount <= pdfDocument.Pages.Count; pageCount++)
18                 {
19                     // 为每一页生成一个唯一的文件名
20                     string pageSavePath = Path.Combine(Path.GetDirectoryName(imageSavePath), $"page_{pageCount}.jpg");
21 
22                     //判断目录
23                     string directory = Path.GetDirectoryName(imageSavePath);
24                     if (!Directory.Exists(directory))
25                         Directory.CreateDirectory(directory);
26 
27                     // 使用 'using' 自动管理资源
28                     using (FileStream imageStream = new FileStream(pageSavePath, FileMode.Create))
29                     {
30                         // 创建分辨率对象
31                         Resolution resolution = new Resolution(300);
32                         JpegDevice jpegDevice = new JpegDevice(resolution, 100);
33 
34                         var pdfFile = pdfDocument.Pages[pageCount];
35 
36                         // 转换特定页面并将图像保存到流中
37                         jpegDevice.Process(pdfFile, imageStream);
38                     }
39                 }
40             }
41             catch (Exception ex)
42             {
43                 // 记录错误信息
44                 Console.WriteLine($"Error: {ex.Message}");
45                 return false;
46             }
47             return true;
48         }

 1  /// <summary>
 2     /// 全局静态配置
 3     /// </summary>
 4     public class AppConfig
 5     {
 6         /// <summary>
 7         /// Key值
 8         /// </summary>
 9         public const string AsposeKey = @"PExpY2Vuc2U+DQogIDxEYXRhPg0KICAgIDxMaWNlbnNlZFRvPkFzcG9zZSBTY290bGFuZCB
10                                                             UZWFtPC9MaWNlbnNlZFRvPg0KICAgIDxFbWFpbFRvPmJpbGx5Lmx1bmRpZUBhc3Bvc2UuY2
11                                                             9tPC9FbWFpbFRvPg0KICAgIDxMaWNlbnNlVHlwZT5EZXZlbG9wZXIgT0VNPC9MaWNlbnNlV
12                                                             HlwZT4NCiAgICA8TGljZW5zZU5vdGU+TGltaXRlZCB0byAxIGRldmVsb3BlciwgdW5saW1p
13                                                             dGVkIHBoeXNpY2FsIGxvY2F0aW9uczwvTGljZW5zZU5vdGU+DQogICAgPE9yZGVySUQ+MTQ
14                                                             wNDA4MDUyMzI0PC9PcmRlcklEPg0KICAgIDxVc2VySUQ+OTQyMzY8L1VzZXJJRD4NCiAgIC
15                                                             A8T0VNPlRoaXMgaXMgYSByZWRpc3RyaWJ1dGFibGUgbGljZW5zZTwvT0VNPg0KICAgIDxQc
16                                                             m9kdWN0cz4NCiAgICAgIDxQcm9kdWN0PkFzcG9zZS5Ub3RhbCBmb3IgLk5FVDwvUHJvZHVj
17                                                             dD4NCiAgICA8L1Byb2R1Y3RzPg0KICAgIDxFZGl0aW9uVHlwZT5FbnRlcnByaXNlPC9FZGl
18                                                             0aW9uVHlwZT4NCiAgICA8U2VyaWFsTnVtYmVyPjlhNTk1NDdjLTQxZjAtNDI4Yi1iYTcyLT
19                                                             djNDM2OGYxNTFkNzwvU2VyaWFsTnVtYmVyPg0KICAgIDxTdWJzY3JpcHRpb25FeHBpcnk+M
20                                                             jAxNTEyMzE8L1N1YnNjcmlwdGlvbkV4cGlyeT4NCiAgICA8TGljZW5zZVZlcnNpb24+My4w
21                                                             PC9MaWNlbnNlVmVyc2lvbj4NCiAgICA8TGljZW5zZUluc3RydWN0aW9ucz5odHRwOi8vd3d
22                                                             3LmFzcG9zZS5jb20vY29ycG9yYXRlL3B1cmNoYXNlL2xpY2Vuc2UtaW5zdHJ1Y3Rpb25zLm
23                                                             FzcHg8L0xpY2Vuc2VJbnN0cnVjdGlvbnM+DQogIDwvRGF0YT4NCiAgPFNpZ25hdHVyZT5GT
24                                                             zNQSHNibGdEdDhGNTlzTVQxbDFhbXlpOXFrMlY2RThkUWtJUDdMZFRKU3hEaWJORUZ1MXpP
25                                                             aW5RYnFGZkt2L3J1dHR2Y3hvUk9rYzF0VWUwRHRPNmNQMVpmNkowVmVtZ1NZOGkvTFpFQ1R
26                                                             Hc3pScUpWUVJaME1vVm5CaHVQQUprNWVsaTdmaFZjRjhoV2QzRTRYUTNMemZtSkN1YWoyTk
27                                                             V0ZVJpNUhyZmc9PC9TaWduYXR1cmU+DQo8L0xpY2Vuc2U+";
28     }

 

 

posted @ 2025-05-09 10:08  黑山羊里的白山羊  阅读(121)  评论(0)    收藏  举报