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/