C#中的JPG到PDF转换器

Cop*_*ill 19 c# pdf jpeg image-conversion

我想从图像(如jpg或png)转换为PDF.

我已经查看了ImageMagickNET,但它对我的需求来说太复杂了.

还有哪些其他.NET解决方案或代码可用于将图像转换为PDF?

Dar*_*rov 28

使用iTextSharp轻松:

class Program
{
    static void Main(string[] args)
    {
        Document document = new Document();
        using (var stream = new FileStream("test.pdf", FileMode.Create, FileAccess.Write, FileShare.None))
        {
            PdfWriter.GetInstance(document, stream);
            document.Open();
            using (var imageStream = new FileStream("test.jpg", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
            {
                var image = Image.GetInstance(imageStream);
                document.Add(image);
            }
            document.Close();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 如何在pdf中添加图像宽度和高度? (2认同)

Rub*_*ink 17

iTextSharp非常干净,是开源的.此外,作者还提供了一本非常好的随书,如果你最终做了更有趣的事情,比如管理表格,我建议你这样做.对于正常使用,邮件列表和新闻组中有大量资源可用于如何执行常见操作的示例.

编辑:正如在@ Chirag的评论中提到的那样,@ Darin的答案代码肯定会与当前版本编译.

用法示例:

public static void ImagesToPdf(string[] imagepaths, string pdfpath)
{
    using(var doc = new iTextSharp.text.Document())
    {
        iTextSharp.text.pdf.PdfWriter.GetInstance(doc, new FileStream(pdfpath, FileMode.Create));
        doc.Open();
        foreach (var item in imagepaths)
        {
            iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(item);
            doc.Add(image);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • iTextSharp是开源的,但不是免费的.由于他们使用的AGPL许可证,您必须支付许可费或自己的代码开源.请在此处查看:http://itextpdf.com/terms-of-use/index.php (9认同)

Chi*_*rag 6

另一个工作代码,试试吧

public void ImagesToPdf(string[] imagepaths, string pdfpath)
{
        iTextSharp.text.Rectangle pageSize = null;

        using (var srcImage = new Bitmap(imagepaths[0].ToString()))
        {
            pageSize = new iTextSharp.text.Rectangle(0, 0, srcImage.Width, srcImage.Height);
        }

        using (var ms = new MemoryStream())
        {
            var document = new iTextSharp.text.Document(pageSize, 0, 0, 0, 0);
            iTextSharp.text.pdf.PdfWriter.GetInstance(document, ms).SetFullCompression();
            document.Open();
            var image = iTextSharp.text.Image.GetInstance(imagepaths[0].ToString());
            document.Add(image);
            document.Close();

            File.WriteAllBytes(pdfpath+"cheque.pdf", ms.ToArray());
        }
}
Run Code Online (Sandbox Code Playgroud)


Bob*_*mer 5

我们非常幸运的一个是 PDFSharp(我们每天将它用于 TIFF 和文本到 PDF 的转换,以处理数百个医疗索赔)。

http://pdfsharp.com/PDFsharp/