winform利用itextsharp.dll实现图片文件转换PDF格式文件

时间:2024-04-14 15:04:41

1.利用itextsharp.dll实现单个图片文件转换为PDF格式文件,

可以使用以下类:

        void ConvertJPG2PDF(string jpgfile, string pdf)
{
var document = new Document(iTextSharp.text.PageSize.A4, 25, 25, 25, 25);
using (var stream = new FileStream(pdf, FileMode.Create, FileAccess.Write, FileShare.None))
{
PdfWriter.GetInstance(document, stream);
document.Open();
using (var imageStream = new FileStream(jpgfile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
var image = iTextSharp.text.Image.GetInstance(imageStream);
if (image.Height > iTextSharp.text.PageSize.A4.Height - 25)
{
image.ScaleToFit(iTextSharp.text.PageSize.A4.Width - 25, iTextSharp.text.PageSize.A4.Height - 25);
}
else if (image.Width > iTextSharp.text.PageSize.A4.Width - 25)
{
image.ScaleToFit(iTextSharp.text.PageSize.A4.Width - 25, iTextSharp.text.PageSize.A4.Height - 25);
}
image.Alignment = iTextSharp.text.Image.ALIGN_MIDDLE;
document.Add(image);
} document.Close();
}
}

  两个参数,一个是要转换铁图片文件,一个是新生成的PDF文件。记得路径要写全。

2.如果想利用利用itextsharp.dll实现批量图片转换为一个PDF文件,可以用以下类:

        private void process(string[] files, string newpdf)
{
iTextSharp.text.Document document = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4, 25, 25, 25, 25); try
{
iTextSharp.text.pdf.PdfWriter.GetInstance(document, new FileStream(newpdf, FileMode.Create, FileAccess.ReadWrite)); document.Open();
iTextSharp.text.Image image;
for (int i = 0; i < files.Length; i++)
{
if (String.IsNullOrEmpty(files[i])) break; image = iTextSharp.text.Image.GetInstance(files[i]); if (image.Height > iTextSharp.text.PageSize.A4.Height - 25)
{
image.ScaleToFit(iTextSharp.text.PageSize.A4.Width - 25, iTextSharp.text.PageSize.A4.Height - 25);
}
else if (image.Width > iTextSharp.text.PageSize.A4.Width - 25)
{
image.ScaleToFit(iTextSharp.text.PageSize.A4.Width - 25, iTextSharp.text.PageSize.A4.Height - 25);
}
image.Alignment = iTextSharp.text.Image.ALIGN_MIDDLE;
//image.SetDpi(72, 72); document.NewPage();
document.Add(image); }
MessageBox.Show("转换成功!");
}
catch (Exception ex)
{
MessageBox.Show("转换失败,原因:"+ex.Message);
}
document.Close();
}

  files参数是存放图片文件的数组

newpdf是新生成的PDF文件的路径及名称。

itextsharp.dll 下载:http://sourceforge.net/projects/itextsharp/