C#使用iTextSharp库将图片转换为PDF的步骤及实例代码解析

近期有些网友想要了解C#使用iTextSharp库将图片转换为PDF的步骤及实例代码解析的相关情况,小编通过整理给您分析,同时介绍一下有关信息。

在现代软件开发中,将图片转换为PDF文档是一种常见需求,特别是在处理电子文档、报告生成和数据存储等场景中。iTextSharp是一个功能强大的开源库,专门用于在.NET环境中创建和操作PDF文档。本文将详细介绍如何使用iTextSharp库在C#中将图片转换为PDF文档,包括具体的步骤和实例代码解析,帮助开发者快速掌握这一实用技能。

iTextSharp简介

iTextSharp 是一个开源的 .NET 库,主要用于创建和操作 PDF 文档。它是 iText 的 .NET 版本,iText 是一个广泛使用的 Java 库。iTextSharp 继承了 iText 的核心功能并进行了适应 .NET 平台的调整。

iTextSharp 的主要功能包括:

创建 PDF 文档:可以生成带有文本、图像、表格、矢量图形等内容的 PDF 文档。

修改 PDF 文档:支持从现有 PDF 文件中提取文本、添加或删除页面、修改内容等。

数字签名:支持为 PDF 文件添加数字签名,以验证文件的完整性和真实性。

加密与解密:提供对 PDF 文件进行加密保护的功能,支持设置权限(如打印、复制等),并支持解密操作。

表单功能:支持创建 PDF 表单,并允许数据填充、表单提交等操作。

文本抽取:可以从 PDF 文档中提取文本,支持文字提取和 OCR(光学字符识别)功能(需要外部支持)。

支持多种字体和国际化:支持嵌入字体,能够处理不同语言字符集(包括中文、日文等)。

高效性能:能够高效地处理大量 PDF 文件,适用于商业和大型应用程序。

效果图如下:

目标

本文演示如何使用 C# 和 iTextSharp 将图片转换为 PDF 的功能。

使用步骤

首先,我们需要在项目中引用以下两个 DLL 文件:

BouncyCastle.Crypto.dll:提供 iTextSharp 在处理数字签名、加密、解密等功能时所需的加密支持。

itextsharp.dll:用于操作 PDF 文件。

代码实现

usingSystem;
usingSystem.IO;
usingSystem.Windows.Forms;
usingiTextSharp.text;
usingiTextSharp.text.pdf;

namespacepdfzhuan
{
publicpartialclassForm1:Form
{
publicForm1()
{
InitializeComponent();
}

//选择文件按钮,打开文件对话框并选择图片文件
privatevoidbutton1_Click(objectsender,EventArgse)
{
OpenFileDialogofd=newOpenFileDialog
{
InitialDirectory=Application.StartupPath,//设置打开对话框的初始目录
Title="请选择要打开的文件",//设置对话框标题
Multiselect=true,//允许多选文件
Filter="图片文件|*.jpg|所有文件|*.*",//设置文件过滤器
FilterIndex=2,//设置默认过滤器索引
RestoreDirectory=false//不记忆最后打开的目录
};

if(ofd.ShowDialog()==DialogResult.OK)
{
stringfilePath=ofd.FileName;//获取文件路径
stringfileName=ofd.SafeFileName;//获取文件名(不包括路径)
stringpdfFile=filePath.Replace(".jpg",".pdf");//设置转换后的PDF文件路径
textBox1.Text=filePath;//显示图片路径
textBox2.Text=pdfFile;//显示PDF输出路径
}
}

///
///将图片转换为PDF
///
///图片文件路径
///生成的PDF文件路径
///
publicstaticboolConvertJPG2PDF(stringjpgfile,stringpdf)
{
try
{
//创建一个A4尺寸的PDF文档
vardocument=newDocument(PageSize.A4,25,25,25,25);
using(varstream=newFileStream(pdf,FileMode.Create,FileAccess.Write,FileShare.None))
{
//获取PDF写入实例
PdfWriter.GetInstance(document,stream);
document.Open();//打开文档

//加载图片
using(varimageStream=newFileStream(jpgfile,FileMode.Open,FileAccess.Read,FileShare.ReadWrite))
{
varimage=Image.GetInstance(imageStream);

//图片如果过大,则缩放以适应页面
if(image.Height>PageSize.A4.Height-25||image.Width>PageSize.A4.Width-25)
{
image.ScaleToFit(PageSize.A4.Width-25,PageSize.A4.Height-25);
}

image.Alignment=Image.ALIGN_MIDDLE;//设置图片居中
document.Add(image);//将图片添加到PDF文档中
}

document.Close();//关闭文档
}

MessageBox.Show("PDF转换成功!");
returntrue;
}
catch(Exceptionex)
{
MessageBox.Show($"转换失败:{ex.Message}");
returnfalse;
}
}

//点击转换按钮,执行转换操作
privatevoidbutton3_Click(objectsender,EventArgse)
{
if(string.IsNullOrEmpty(textBox1.Text))
{
MessageBox.Show("请选择要转换的图片!");
return;
}

stringjpgFile=textBox1.Text;
stringpdfFile=textBox2.Text;

//执行图片转换为PDF
ConvertJPG2PDF(jpgFile,pdfFile);
}

//点击选择文件夹按钮,设置输出PDF文件的路径
privatevoidbutton2_Click(objectsender,EventArgse)
{
if(string.IsNullOrEmpty(textBox1.Text))
{
MessageBox.Show("请选择要转换的图片!");
return;
}

FolderBrowserDialogfolderDialog=newFolderBrowserDialog
{
Description="请选择图片所在文件夹"
};

if(folderDialog.ShowDialog()==DialogResult.OK)
{
stringfilename=DateTime.Now.ToString("yyyyMMddHHmm");//生成文件名
textBox2.Text=Path.Combine(folderDialog.SelectedPath,$"{filename}.pdf");//设置输出路径
}
}
}
}

代码解析

选择图片文件:通过 OpenFileDialog 控件打开文件对话框,用户可以选择 .jpg 格式的图片。选择后,图片路径和对应的 PDF 输出路径会显示在文本框中。

图片转 PDF:通过 iTextSharp 库,创建一个 A4 尺寸的 PDF 文档。通过 iTextSharp.text.Image.GetInstance() 方法加载图片,如果图片尺寸超过 A4 页面,则自动缩放以适应页面大小。最后,图片被添加到 PDF 中并保存。

设置输出 PDF 文件路径:用户可以通过 FolderBrowserDialog 选择输出文件夹,并设置 PDF 文件名。

总结

通过本文的详细讲解,我们了解了如何使用iTextSharp库在C#中将图片转换为PDF文档的具体步骤和实例代码。从创建PDF文档、添加图片到保存PDF文件,每一步都进行了详细的解析。iTextSharp库的强大功能和灵活性使其成为处理PDF文档的理想选择。希望本文的内容能帮助开发者在实际项目中高效地实现图片到PDF的转换,提升工作效率。

发布于 2025-01-14 03:29:04
分享
海报
173
上一篇:Element UI 入门指南:快速构建高效 Vue 应用 下一篇:PHP获取本机ip地址实例代码详解
目录

    忘记密码?

    图形验证码