C# Image转PDF(iTextSharp)

NuGet包下载最新iTextSharp

操作PDF文档时,打印是常见的需求之一。

将传过来的 json 生成 image 后,再把所有图片转成 PDF

要求:

1、PDF 打印出来的图片大小要符合实际要求的大小

2、PDF 文件(test.pdf)的纸张大小就是图片大小

Document pdfDocument = new Document(new iTextSharp.text.Rectangle(0, 0), 0, 0, 0, 0);
string fileName = "C:\\Users\\Admin\\Desktop\\output\\test.pdf";
iTextSharp.text.pdf.PdfWriter.GetInstance(pdfDocument, new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite));

pdfDocument.Open();

//Json生成的System.Drawing.Image image
image = printLayout.Draw();
//转iTextSharp.text.Image
ImageConverter imgconv = new ImageConverter();
byte[] bytes = (byte[])imgconv.ConvertTo(image, typeof(byte[]));
Stream stream = new MemoryStream(bytes);
iTextSharp.text.Image images;
images = iTextSharp.text.Image.GetInstance(stream);

//根据实际需求,换算图片大小,并添加到pdf中
float imageWidth = image.Width / 2.105f;
float imageHeight = image.Height / 2.105f;
images.ScaleToFit(imageWidth, imageHeight);
pdfDocument.SetPageSize(new iTextSharp.text.Rectangle(0, 0, imageWidth, imageHeight));
pdfDocument.NewPage();
pdfDocument.Add(images);

pdfDocument.Close();

 

posted @ 2022-12-15 15:48  鱼仔鱼仔  阅读(1412)  评论(0)    收藏  举报