C# 多张图片合成一张PDF

这篇具有很好参考价值的文章主要介绍了C# 多张图片合成一张PDF。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        我是将每张图片转为byte[],再将所有的字节数组转为byte[][],然后对byte[][]进行的处理,大家有其他格式的图片要进行处理的可以先转为上述数据格式。

语种:C#

用到的第三方库:PdfSharp.dll(可直接使用PDFsharp包),如下图

C# 多张图片合成一张PDF,C#,c#,pdf

思路大概如下:

①申明一个PDF文件对象(PdfDocument变量)

②遍历我们要处理的所有图片

③   申明一个PDF页对象(PdfPage变量),申明一个画板(XGraphics对象)隶属于刚申明的PDF页对象,然后用画板将此次遍历到的图片(byte[])画到PDF页对象上,然后将PDF页对象塞到第①步申明的PDF文件对象

④此时,遍历完所有图像了,PDF文件对象中也有我们要处理的所有图片数据了,直接保存这份PDF文件对象就可以了。

下面是代码:

 /// <summary>
        /// 保存PDF图像【适用于小批量图片】
        /// </summary>
        /// <param name="buffer">要处理的所有图片数据</param>
        /// <param name="path">PDF的保存路径</param>
        /// <returns></returns>
        public static void SavePdf(byte[][] buffer, string savePath)
        {
            if (buffer == null || buffer.Length == 0)
            {
                throw new Exception("文件流为空!");
            }             
            Verif(savePath);//此方法我用来验证路径,逻辑依自己的业务来写就好,不需要可直接去掉。

            string folderPath = Path.GetDirectoryName(savePath);
            if (!Directory.Exists(folderPath))
            {
                Directory.CreateDirectory(folderPath);
            }
                
            PdfDocument doc = new PdfDocument();
            try
            {
                for (int i = 0; i < buffer.Length; i++)
                {
                    using (MemoryStream ms1 = new MemoryStream(buffer[i]))
                    {
                        //var stream = Image.FromStream(ms1);
                        //XImage img = XImage.FromGdiPlusImage(stream);
                        XImage img = XImage.FromStream(ms1);
                        PdfPage page = new PdfPage();
                        XGraphics xgr = XGraphics.FromPdfPage(page);
                        doc.Pages.Add(page);
                        xgr.DrawImage(img, 0, 0, page.Width.Value, page.Height.Value);//切记这里一定要指定宽高
                        
                        img.Dispose();
                    }
                }
                doc.Save(savePath);
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                doc.Dispose();
                doc.Close();
            }
        }

雷点:

在画图像(即执行xgr.DrawImage()函数)时,一定要指定宽高,即上述代码中的page.Width.Value和page.Height.Value,否则在处理横图时,会出现图片显示不全的bug.

C# 多张图片合成一张PDF,C#,c#,pdf

好了,这篇文章就到这里,小伙伴们有什么建议和意见或者不懂的地方,评论区交流就好。文章来源地址https://www.toymoban.com/news/detail-551355.html

到了这里,关于C# 多张图片合成一张PDF的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp:手写签名,多张图合成一张图

    要实现的内容 :手写签名,协议内容。点击提交后:生成1张图片,有协议内容和签署日期和签署人。 实现的效果图如下: 1、签名页面

    2024年02月15日
    浏览(90)
  • .Net C# 免费PDF合成软件

    最近用到pdf合成,发现各种软件均收费啊,这个技术非常简单,别人写好的库一大把,这里用到了PDFsharp,项目地址Home of PDFsharp and MigraDoc Foundation 软件下载地址 https://download.csdn.net/download/g313105910/88014569 源码下载地址 https://download.csdn.net/download/g313105910/88014573 废话不多说,上

    2024年02月13日
    浏览(44)
  • C# 图片转PDF,PDF增加水印文字

    好久没写博客了,今天给大家分享一个图片转PDF的相关操作,也算是一次总结吧。 首先需要准备动态库itextsharp.dll,这个dll去网上下载,都可以下载到,C#对PDF的操作都是基于这个类库来实现的。话不多说,直接上代码。

    2024年02月09日
    浏览(48)
  • c#,将pdf文件转换成图片文件

    本文采用Adobe Acrobat9.0的COM组件,将Pdf文件的每一页转换成对应的图片文件。 开发环境:VS2010,.Net Framework4.0,Adobe Acrobat9.0。 工程中添加COM引用:Adobe Acrobat 9.0 Type Library(必须装了Adobe Acrobat9.0才会有)。 思路: 1)CAcroPDDoc:Acrobat文档对象。 2)CAcroPDPage:页对象。 3)CAcroR

    2024年02月04日
    浏览(43)
  • C# 提取PDF中指定文本、图片的坐标

    获取 PDF 文件中文字或图片的坐标可以实现精确定位,这对于快速提取指定区域的元素,以及在 PDF 中添加注释、标记或自动盖章等操作非常有用。本文将详解如何使用国产 PDF 库 通过 C# 提取 PDF 中指定文本或图片的坐标位置( X, Y 轴) 。 ✍ 用于操作PDF文件的第三方库为 S

    2024年02月04日
    浏览(43)
  • MidJourney教程03--BLEND 两张图片合成一张图片

    MidJourney教程02--BLEND 两张图片合成一张图片 首先输入   然后会让你选择两张图片进行处理!  那么,现在我们把比卡丘,和路飞融合在一起啦!  接下来看出来效果会是怎么样子呢? 那么,我们就得到了一个路飞比卡丘! 其实还有很多种方法可以使用! 例如场景与产品的

    2024年02月15日
    浏览(43)
  • 微信小程序原生将两张图片合成一张并保存至手机中

    我是一名刚毕业工作俩月的实习生,技术很菜,如果文章有写的地方,在评论区写出来,让像我一样的小白少走点弯路。. 需要将图片保存至手机, 但是微信小程序官方文档提供的保存至手机api参数是一张图片,而我这是两张图片,一张背景图,一张接口返回的二维码,所以

    2024年02月09日
    浏览(40)
  • 多个PDF发票合并实现一张A4纸打印2张电子/数电发票功能

    python教程79--A4纸增值税电子发票合并打印_python 打印 发票设置_颐街的博客-CSDN博客 文章浏览阅读7.9k次。接上篇https://blog.csdn.net/itmsn/article/details/121902974?spm=1001.2014.3001.5501一张A4纸上下2张增值税电子发票实现办法。使用环境:python3.8、mac、docx库开发工具:jupyterlab增值税电子发

    2024年02月05日
    浏览(73)
  • PDF转图片pdf转换图片,线程池

    然后用的时候:

    2024年02月11日
    浏览(45)
  • Java Word转PDF(直接转和以图片形式转)、PDF转图片、图片转PDF

    在淘宝上找了一家写代码的店铺写了一个工具类,再参考网上的代码,改了改 用到的类库: 工具类代码:

    2024年02月12日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包