C# insert images into pdf, auto scale with page size and insert image path under each image

Install-Package iTextSharp;

 

using iTextSharp.text;
using iTextSharp.text.pdf;
using Document = iTextSharp.text.Document;

namespace ConsoleApp38
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string pdfFile = $"{DateTime.Now.ToString("yyyyMMddHHmmssffff")}.pdf";
            string dir = @"C:\C\WpfApp81\WpfApp81\bin\Debug\net10.0-windows\JPG_202509111508489971";
            List<string> imgsList = Directory.GetFiles(dir).OrderBy(x => new FileInfo(x).CreationTime).ToList();
            InsertPicturesIntoPDF(pdfFile, imgsList);
            Console.WriteLine($"Inserted {imgsList.Count} into pdf file {pdfFile}");
        }

        static void InsertPicturesIntoPDF(string pdfFile,List<string> imgsPathList)
        {
            if (imgsPathList==null || !imgsPathList.Any())
            {
                return;
            }

            using (FileStream fileStream = new FileStream(pdfFile, FileMode.Create))
            {
                using (Document doc = new Document(PageSize.A1, 100, 100, 100, 100))
                {
                    using (PdfWriter pdfWriter = PdfWriter.GetInstance(doc, fileStream))
                    {
                        doc.Open();
                        foreach(var imgPath in imgsPathList)
                        {
                            Image img = Image.GetInstance(imgPath);                             
                            img.ScaleToFit(doc.PageSize.Width-doc.LeftMargin-doc.RightMargin,
                            doc.PageSize.Height-doc.TopMargin-doc.BottomMargin);
                            img.Alignment=Element.ALIGN_CENTER;                             
                            doc.Add(img);
                            doc.Add(new Paragraph(imgPath, new Font(Font.FontFamily.HELVETICA, 50, 1)));
                            Console.WriteLine(imgPath);
                        }
                        doc.Close();
                    }
                }
            }
        }
    }
}

 

 

 

image

 

 

 

 

 

image

 

posted @ 2025-09-11 16:52  FredGrit  阅读(7)  评论(0)    收藏  举报