I'm trying to merg images from a folder to a pdf file. here is my code:
-
-
-
-
-
- private byte[] CreatePdf(string[] bmpFilePaths)
- {
- using (var ms = new MemoryStream())
- {
- var document = new iTextSharp.text.Document(iTextSharp.text.PageSize.LETTER.Rotate(), 0, 0, 0, 0);
- iTextSharp.text.pdf.PdfWriter.GetInstance(document, ms).SetFullCompression();
- document.Open();
- foreach (var path in bmpFilePaths)
- {
- var imgStream = GetImageStream(path);
- var image = iTextSharp.text.Image.GetInstance(imgStream);
- image.ScaleToFit(document.PageSize.Width, document.PageSize.Height);
- document.Add(image);
- }
- document.Close();
- return ms.ToArray();
- }
- }
-
-
-
-
-
-
- private Stream GetImageStream(string imagePath)
- {
- var ms = new MemoryStream();
- using (var img = Image.FromFile(imagePath))
- {
- var jpegCodec = ImageCodecInfo.GetImageEncoders()
- .Where(x => x.MimeType == "image/jpeg")
- .FirstOrDefault();
-
- var encoderParams = new EncoderParameters(1);
- encoderParams.Param[0] = new EncoderParameter(Encoder.Quality, (long)20);
-
- int dpi = 175;
- var thumb = img.GetThumbnailImage((int)(11 * dpi), (int)(8.5 * dpi), null, IntPtr.Zero);
- thumb.Save(ms, jpegCodec, encoderParams);
- }
- ms.Seek(0, SeekOrigin.Begin);
- return ms;
- }
The images are in a folder. can somebody please tell me how to pass string[] with the list of images links to CreatePdf(string[] bmpFilesPath) from a button click function.