C#使用iTextSharp将多张图片转一个PDF(图片页面大小一致)
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(图片页面大小一致)相关推荐
- C#使用iTextSharp将多张图片转一个PDF
NuGet安装最新版iTextSharp 图片大小(mm) = 图片像素 * 25.4 / 图片分辨率 PDF大小(mm) = 图片大小(mm) * 2.83462677 /// <summar ...
- 多张图片导成PDF后页面大小不一怎么调整
将图片转成PDF的方法很多,但有时预览的时候明明图片大小是一样的,为什么转换后的PDF文档却页面大小不一呢? 其实我们预览的图片大小并不是图片实际的尺寸大小,一般都是看图软件进行缩放的,而只有查看图片 ...
- 好几张图片合成一个PDF,不能错过的小技巧!
图片可以说是我们日常生活中就经常接触的文件啦,我们只要拥有摄像设备,在很多不同场景下都可以实现拍照自由.可是随着我们的图片文件的增多,我们会更多使用一些方法来更好保存这些比较珍贵的图像.比较常用的有把 ...
- 如何查看文件夹里有几张图片_如何把几张图片合成一个pdf?图片合并为pdf的操作教程...
我在一家公司当美工,平时要接触到很多图片素材,并把它们以pdf格式文件的形式发送给客户查看(以此来摸索出客户想要的图片效果).把几张图片合并成为一个pdf文件,即是将图片格式转换成为pdf格式,这对我 ...
- 多张图片合成一个PDF
把多张图片放到一个文件夹中,Ctrl+A全选,右键-打印,然后可以在"选项"中选择横向或者纵向,打印机选择"MIcrosoft to PDF",打印即可
- jpg转换成PDF 如何将多张图片合成一个PDF文件
一般扫描一些文档资料之后形成的图片会放在同一个文件夹中,但是有时为了便于查看和管理这些图片,就会将图片合成一个文档,这样查看内容的时候会比较方便,一般也都是将图片转换成PDF文件. 把图片转换成PDF ...
- java,png,jpg,多张图片合成一个pdf,压缩图片,并且保证图片不失帧。
如何把图片合并成一个pdf,并且压缩图片大小至200以下,并且图片不失帧. /*** 合并图片转成pdf** @param inputImgUrls* @param outputFileName* @ ...
- N张图片合成一个最终图片(像素图片)
开发工具: Python 3.8,PyCharm 用到的所有源图像(新建目录,将图片放进去):sourceimages 最终需要的图片(新建目录examples,放进去最终需要的一张图片):examp ...
- 如何将多个PDF合成为一个PDF,并且大小统一?
一.引言 前几日,老板的申报书pdf文件及专利证明pdf文件需要合并,我使用Adobe Acrobat软件合并后发现pdf文件的页面大小会因为图片的质量不一样,具体问题是:专利证明pdf文件里的图片貌 ...
最新文章
- MySQL安装ODBC驱动出现126错误
- 机器学习中四种调参方法总结
- /proc/diskstats各字段解析
- 力扣——所有可能的满二叉树
- ThreadLocal的两种用法
- [Reomting Debug] 巧用VS 的remote debug 功能远程调试程序 经验分享.
- IOS15瀑布流的使用
- 主动学习(Active Learning)领域部分经典论文汇总
- ASP分页要用到的属性ADO CursorLocation知识补充:
- 【算法】排序_桶排序
- 开机LOGO与动画修改
- eclipse设置黑色主题
- 高等数学(第七版)同济大学 习题1-4 个人解答
- Protel 格式网表转换 Allegro 格式网表的 Skill 程序
- JS 获得FileUpload1 的完整路径
- Clang checker类总结
- HiFT: Hierarchical Feature Transformer for Aerial Tracking分层特征Transformer的无人机跟踪
- Cannot read lifecycle mapping metadata for artifact org.apache.maven.plugins:mav问题
- 基于spark的Scala编程—读取properties文件
- mysql读写分离 abp_mysql读写分离策略
热门文章
- 【Android -- 动画】Lottie 动画的基本使用
- 个人博客搭建记录 Hexo+Butterfly+Github Page+Coding
- SpringCloud Feign调用报错feign.RetryableException: too many bytes written executing
- C/C++仓库管理系统
- 未分配利润与利润表不一致_为什么本年利润与利润表不一致
- Multiple-environment Self-adaptive Network for Aerial-View Geo-localization
- 怎么在网页中播放视频之一:HTML5视频嵌入
- 关于使用CString 出现的问题
- 双指针--快慢指针和对撞指针
- java 课件ppt_《java语言入门》PPT课件.ppt