NuGet安装最新版iTextSharp
图片大小(mm) = 图片像素 * 25.4 / 图片分辨率
PDF大小(mm) = 图片大小(mm) * 2.83462677

/// <summary>
/// 将多张图片合成到一个PDF内,完美填充页,页大小(mm)为图片大小(mm)
/// </summary>
/// <param name="输出目录">最终的PDF输出目录</param>
/// <param name="图片路径">图片的路径集合</param>
public static void PDF生成(string 输出目录, List<string> 图片路径) {
    //获取PDF页的实际长宽(mm)
    float[] xy = new float[2];
    using (FileStream fs = new FileStream(图片路径[0], FileMode.Open)) {
        System.Drawing.Image img = System.Drawing.Image.FromStream(fs);
        int w = img.Width;
        int h = img.Height;
        float w_dpi = img.HorizontalResolution;//水平分辨率
        float h_dpi = img.VerticalResolution;//垂直分辨率
        xy[0] = (float)(w * 25.4 / w_dpi * 2.83462677);//PDF实际宽度(mm)要乘2.83462677
        xy[1] = (float)(h * 25.4 / h_dpi * 2.83462677);
    }
    //创建页属性对象,Rectangle:设置长宽,最后4个0设置左右上下边距
    iTextSharp.text.Document document = new iTextSharp.text.Document(new iTextSharp.text.Rectangle(0, 0, xy[0], xy[1]), 0, 0, 0, 0);
    using (FileStream fs = new FileStream(输出目录, FileMode.Create)) {
        iTextSharp.text.pdf.PdfWriter.GetInstance(document, fs);//将页设置与PDF输出流合并
        document.Open();//打开PDF
        //插入图片,一个图片占满一页
        for (int i = 0; i < 图片路径.Count; i++) {
            string imgPath = 图片路径[i];
            using (FileStream imgFs = new FileStream(imgPath, FileMode.Open)) {
                iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(imgFs);//从流读取图片
                //img.Alignment = Element.ALIGN_CENTER;//图片居中
                //img.SetAbsolutePosition(0, 0);//设置图片位置,PDF原点是左下角
                img.ScaleAbsolute(xy[0], xy[1]);//设置图片大小
                document.NewPage();//创建新页,并指向新页
                document.Add(img);//往新页中添加图片
                imgFs.Close();//重要,防止内存溢出,必要时可调用GC强制等待清理
            }
        }
        document.Dispose();//关闭PDF
    }
}
————————————————

原文链接:https://blog.csdn.net/qq_42690327/article/details/126597220

C#使用iTextSharp将多张图片转一个PDF(图片页面大小一致)相关推荐

  1. C#使用iTextSharp将多张图片转一个PDF

    NuGet安装最新版iTextSharp 图片大小(mm) = 图片像素 * 25.4 / 图片分辨率 PDF大小(mm) = 图片大小(mm) * 2.83462677 /// <summar ...

  2. 多张图片导成PDF后页面大小不一怎么调整

    将图片转成PDF的方法很多,但有时预览的时候明明图片大小是一样的,为什么转换后的PDF文档却页面大小不一呢? 其实我们预览的图片大小并不是图片实际的尺寸大小,一般都是看图软件进行缩放的,而只有查看图片 ...

  3. 好几张图片合成一个PDF,不能错过的小技巧!

    图片可以说是我们日常生活中就经常接触的文件啦,我们只要拥有摄像设备,在很多不同场景下都可以实现拍照自由.可是随着我们的图片文件的增多,我们会更多使用一些方法来更好保存这些比较珍贵的图像.比较常用的有把 ...

  4. 如何查看文件夹里有几张图片_如何把几张图片合成一个pdf?图片合并为pdf的操作教程...

    我在一家公司当美工,平时要接触到很多图片素材,并把它们以pdf格式文件的形式发送给客户查看(以此来摸索出客户想要的图片效果).把几张图片合并成为一个pdf文件,即是将图片格式转换成为pdf格式,这对我 ...

  5. 多张图片合成一个PDF

    把多张图片放到一个文件夹中,Ctrl+A全选,右键-打印,然后可以在"选项"中选择横向或者纵向,打印机选择"MIcrosoft to PDF",打印即可

  6. jpg转换成PDF 如何将多张图片合成一个PDF文件

    一般扫描一些文档资料之后形成的图片会放在同一个文件夹中,但是有时为了便于查看和管理这些图片,就会将图片合成一个文档,这样查看内容的时候会比较方便,一般也都是将图片转换成PDF文件. 把图片转换成PDF ...

  7. java,png,jpg,多张图片合成一个pdf,压缩图片,并且保证图片不失帧。

    如何把图片合并成一个pdf,并且压缩图片大小至200以下,并且图片不失帧. /*** 合并图片转成pdf** @param inputImgUrls* @param outputFileName* @ ...

  8. N张图片合成一个最终图片(像素图片)

    开发工具: Python 3.8,PyCharm 用到的所有源图像(新建目录,将图片放进去):sourceimages 最终需要的图片(新建目录examples,放进去最终需要的一张图片):examp ...

  9. 如何将多个PDF合成为一个PDF,并且大小统一?

    一.引言 前几日,老板的申报书pdf文件及专利证明pdf文件需要合并,我使用Adobe Acrobat软件合并后发现pdf文件的页面大小会因为图片的质量不一样,具体问题是:专利证明pdf文件里的图片貌 ...

最新文章

  1. MySQL安装ODBC驱动出现126错误
  2. 机器学习中四种调参方法总结
  3. /proc/diskstats各字段解析
  4. 力扣——所有可能的满二叉树
  5. ThreadLocal的两种用法
  6. [Reomting Debug] 巧用VS 的remote debug 功能远程调试程序 经验分享.
  7. IOS15瀑布流的使用
  8. 主动学习(Active Learning)领域部分经典论文汇总
  9. ASP分页要用到的属性ADO CursorLocation知识补充:
  10. 【算法】排序_桶排序
  11. 开机LOGO与动画修改
  12. eclipse设置黑色主题
  13. 高等数学(第七版)同济大学 习题1-4 个人解答
  14. Protel 格式网表转换 Allegro 格式网表的 Skill 程序
  15. JS 获得FileUpload1 的完整路径
  16. Clang checker类总结
  17. HiFT: Hierarchical Feature Transformer for Aerial Tracking分层特征Transformer的无人机跟踪
  18. Cannot read lifecycle mapping metadata for artifact org.apache.maven.plugins:mav问题
  19. 基于spark的Scala编程—读取properties文件
  20. mysql读写分离 abp_mysql读写分离策略

热门文章

  1. 【Android -- 动画】Lottie 动画的基本使用
  2. 个人博客搭建记录 Hexo+Butterfly+Github Page+Coding
  3. SpringCloud Feign调用报错feign.RetryableException: too many bytes written executing
  4. C/C++仓库管理系统
  5. 未分配利润与利润表不一致_为什么本年利润与利润表不一致
  6. Multiple-environment Self-adaptive Network for Aerial-View Geo-localization
  7. 怎么在网页中播放视频之一:HTML5视频嵌入
  8. 关于使用CString 出现的问题
  9. 双指针--快慢指针和对撞指针
  10. java 课件ppt_《java语言入门》PPT课件.ppt