今天给大家分享一下如何通过C#实现pdf转图片的案例,有需要的朋友可以看一下,大家如果有问题可以互相交流学习!
Free Spire.PDF for .NET作为一个独立的免费PDF优秀类库,使用它不需要在系统上安装 Adobe Acrobat 或任何其他第三方软件/库,可以在.NET应用程序中实现pdf转换为图像,当然也可以支持把其他文档格式的文件转换为pdf文件。
转换功能:支持pdf转换为图像、也支持文档转换为pdf
安全功能:通过设置密码和数字签名保护 PDF 文档、 解密 PDF 文档、 获取并验证数字签名、 修改 PDF 密码
pdf文档处理:合并/拆分 PDF 文档、叠加文档、导入和添加印章功能
其他功能:从 PDF 文档中提取图像、文本、页面和附件、支持图层、透明图形、颜色空间和条形码创建、插入交互式元素等
• 将网页 HTML、HTML ASPX 转换为 PDF
• 将图像(Jpeg、Jpg、Png、Bmp、Tiff、Gif、EMF、Ico)转换为 PDF
• 将文本转换为 PDF
• 将 RTF 转换为 PDF
• 将 PDF 转换为图像
打开Nuget管理界面,输入 “FreeSpire.PDF” 进行检索,检索结果第一项就是需要安装的类库,大家根据自己的Net版本选择相应的类库版本。
工具→Nuget包管理器→程序包管理器控制台
输入如下命令:
Install-Package FreeSpire.PDF -Version 8.6.0
pdf转换为图片案例
实现pdf转换为图片案例,支持多页pdf转换为多张图片
/// <summary>
/// pdf转图片
/// </summary>
public static void PDFConvertToJPG()
{
string pdfFullPath = @"E:\测试\test.pdf";
string jpgFilePath = @"E:\测试\";
// 判断目录是否存在创建目录
if (!File.Exists(pdfFullPath))
throw new FileNotFoundException(pdfFullPath);
var doc = new PdfDocument();
// 加载pdf文件
doc.LoadFromFile(pdfFullPath);
// 获取pdf文件的页数
var pageCount = doc.Pages.Count;
// 循环pdf页数 分别保存图片
for (int i = 0; i < pageCount; i++)
{
string jpgFullName = string.Empty;
if (i == 0)
jpgFullName = Path.Combine(jpgFilePath + "0.jpg");
else
jpgFullName = Path.Combine(jpgFilePath + $"_{i}" + ".jpg");
using var stream = File.Open(jpgFullName, FileMode.Create);
using Image bmp = doc.SaveAsImage(i, Spire.Pdf.Graphics.PdfImageType.Bitmap, 360, 360);
bmp.Save(stream, ImageFormat.Jpeg);
}
}
图片转pdf案例
转换方法也非常简单,如下:
/// <summary>
/// 图片转pdf
/// </summary>
public static void ImageToPdf()
{
// 创建一个新的 PDF 文档
PdfDocument document = new PdfDocument();
// 添加一页到 PDF 文档
PdfPageBase page = document.Pages.Add();
// 加载图片文件
PdfImage image = PdfImage.FromFile(@"E:\测试\1.png");
// 将图片绘制到 PDF 页面上
page.Canvas.DrawImage(image, 0, 0, page.Canvas.ClientSize.Width, page.Canvas.ClientSize.Height);
// 保存 PDF 文档到文件
document.SaveToFile(@"E:\测试\demo.pdf");
// 关闭文档
document.Close();
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。