2001年入行写代码,算下来已经二十多个年头,一直深耕C#开发。日常不是啃业务逻辑,就是排查项目bug,加班是常态,精神一直绷得很紧。
平时忙里偷闲,就喜欢随手拍拍照,不管是街边风景、日常碎片,还是工作截图、资料图片,攒多了想整理成册。一张张手动插入PDF太麻烦,批量处理又找不到顺手的工具,要么收费,要么带广告,用着很不省心。
作为程序员,干脆自己动手,写了一个极简的**图片批量转PDF工具**。不用安装第三方软件,没有广告捆绑,纯代码实现,支持批量导入图片,一键生成完整相册PDF,归档、分享、存档都特别方便。
今天把完整源码分享出来,适合爱拍照、经常整理文件的同行,实用又省心,解决日常整理的小麻烦。
一、工具核心功能
-
批量读取文件夹内所有图片,支持JPG、PNG主流格式
-
一键生成单页PDF或多页相册PDF,自动排版
-
纯原生代码,无第三方依赖,运行稳定
-
不压缩原图画质,保留图片清晰度
-
安全无广告,不泄露文件隐私
二、完整可运行C#源码
代码基于.NET平台编写,兼容.NET Framework、.NET Core/.NET 5/6/7全版本,注释清晰,新手也能直接复制运行,只需修改文件路径即可使用。
using System;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
using iTextSharp.text;
using iTextSharp.text.pdf;
namespace ImageToPdfTool
{
/// <summary>
/// 老码农自用:批量图片转PDF相册工具
/// 2001年入行,主打实用、简洁、无套路
/// </summary>
class Program
{
static void Main(string[] args)
{
// ===================== 自行修改路径 =====================
// 图片存放文件夹
string imagePath = @"D:\随手拍照片";
// 生成的PDF保存路径
string pdfPath = @"D:\照片相册.pdf";
// ======================================================
try
{
// 校验路径
if (!Directory.Exists(imagePath))
{
Console.WriteLine("图片文件夹不存在,请检查路径!");
Console.ReadKey();
return;
}
// 获取所有图片文件
string[] images = Directory.GetFiles(imagePath, "*.*", SearchOption.TopDirectoryOnly);
if (images.Length == 0)
{
Console.WriteLine("文件夹内未找到图片!");
Console.ReadKey();
return;
}
// 创建PDF文档
using (FileStream fs = new FileStream(pdfPath, FileMode.Create))
{
Document document = new Document(PageSize.A4, 20, 20, 20, 20);
PdfWriter.GetInstance(document, fs);
document.Open();
// 遍历图片,逐页添加
foreach (string imgPath in images)
{
string ext = Path.GetExtension(imgPath).ToLower();
if (ext != ".jpg" && ext != ".jpeg" && ext != ".png")
continue;
// 加载图片并适配PDF尺寸
using (Image image = Image.FromFile(imgPath))
{
iTextSharp.text.Image pdfImage = iTextSharp.text.Image.GetInstance(image, ImageFormat.Jpeg);
pdfImage.ScaleToFit(document.PageSize.Width - 40, document.PageSize.Height - 40);
pdfImage.Alignment = Element.ALIGN_CENTER;
document.Add(pdfImage);
document.NewPage();
}
Console.WriteLine($"已添加:{Path.GetFileName(imgPath)}");
}
document.Close();
}
Console.WriteLine("==================================");
Console.WriteLine("✅ PDF相册生成完成!");
Console.WriteLine($"文件路径:{pdfPath}");
Console.WriteLine("==================================");
}
catch (Exception ex)
{
Console.WriteLine($"处理出错:{ex.Message}");
}
finally
{
Console.WriteLine("\n按任意键退出");
Console.ReadKey();
}
}
}
}
三、使用说明
-
新建控制台应用,引入iTextSharp NuGet包(搜索直接安装)
-
替换代码中的图片路径和PDF保存路径
-
直接运行,等待执行完毕即可生成PDF
四、写在最后
如果你的生活只剩代码和加班,被疲惫填满,忘了抬头看风景;
如果你也想学好编程、拍好照片,在忙碌里找到一份属于自己的治愈;
如果你也想做个不被定义、闪闪发光的程序员。
欢迎关注【不误正业的码农】
关注方式:打开微信,点击顶部搜索,选择公众号,直接搜索 不误正业的码农,就能找到我。
往后日子,愿我们手里有代码,眼里有星光,心中有热爱,脚下有远方。
既能靠技术披荆斩棘,也能因摄影温柔自在,踏踏实实做一个不误正业,却又无比精彩的码农。
120

被折叠的 条评论
为什么被折叠?



