Click here to Skip to main content
15,888,461 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I'm trying to merg images from a folder to a pdf file. here is my code:
/// <summary>
/// Takes a collection of BMP files and converts them into a PDF document
/// </summary>
/// <param name="bmpFilePaths"></param>
/// <returns></returns>
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();
    }
}


/// <summary>
/// Gets the image at the specified path, shrinks it, converts to JPG, and returns as a stream
/// </summary>
/// <param name="imagePath"></param>
/// <returns></returns>
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.

What I have tried:

Tried but haven't got any solution
Thanks
Posted
Updated 23-Mar-18 5:02am

1 solution

 
Share this answer
 
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900