2021年10月15日2024年3月13日 由 ifan168 发布 6,724 次浏览 PDF批量统计尺寸工具1.3版源码 因本人没时间继续优化开发下去,故将源码共享给大家自行修改,如果使用时还有些小问题,也可以继续在网站上留言。 下载链接: 链接:https://pan.baidu.com/s/1jxUO9gxn7mGl30NpvxCOpA提取码:dviz
最近在用新学的python写这工具。想实现还真不容易,被到底用什么样的数据结构给绕晕了。特别是容错,我用的是死板的具体数值来容错,暂时没想起来这里的百分比容错的设置是怎么弄的。必要时抄袭一下你的C#代码…… 有个想法是,让显示方式尽量贴近手头的尺寸明细表。加长图用分数表示,A0+3/4这样。还有就是想试试增加进度条,用多线程让程序不卡死。
改了一下这个函数,博主可以采纳 /// /// 得到当前页面的图纸尺寸 /// /// private void JudgePaperSize(PdfPage pdfpage) { double W = Math.Max(pdfpage.Width.Millimeter, pdfpage.Height.Millimeter); double H = Math.Min(pdfpage.Width.Millimeter, pdfpage.Height.Millimeter); //可以使用iTextSharp //使用GetPageSizeWithRotation函数获取Rectangle时,合并后的pdf有误 //遂改用GetCropBox //如后续需要获取旋转信息可调用GetPageRotation /**********************/ //针对合并后的PDF先获取一下CropBox var pdfRectangle = pdfpage.CropBox; if (!pdfRectangle.IsEmpty) { var factor = 25.4 / 72.0; W = Math.Max(pdfRectangle.Width * factor, pdfRectangle.Height * factor); H = Math.Min(pdfRectangle.Width * factor, pdfRectangle.Height * factor); } _paperSizeWidth = W; _paperSizeHeight = H; _paperSizeName = SizeToTypeName(W, H); } 登录以回复
是PDF页数限制还是,文件大小现在,拖进去500页的PDF,程序中间卡死了
都没限制,可能是读取信息的时候崩了
有些文件识别不了 图纸大小
超出识别范围的应该会直接列出图纸尺寸
唯一的问题就是点击”设置“会报错,程序被另一进程占用。但不影响使用。
自己修改了下尺寸归类的参数,增加了加长图纸,目前统计基本上没大问题了。
强!
谢谢大神,真的太好的小工具,太感谢了
嘿嘿!
经过今天大半天的折腾,标题栏显示路径,表格区显示合计了。
强!
大佬可以分享下吗
可以啊,没问题。其实还想增加设置关键字,让某些文件不被统计进来。无奈C#遗忘太久,望码兴叹
链接:https://pan.baidu.com/s/13ZfF_q68X0as26IqCMKwmQ?pwd=62oa
提取码:62oa
增加了标题栏显示路径和底部合计。
不错,增加底部合计,提高了使用的便捷性
最近在用新学的python写这工具。想实现还真不容易,被到底用什么样的数据结构给绕晕了。特别是容错,我用的是死板的具体数值来容错,暂时没想起来这里的百分比容错的设置是怎么弄的。必要时抄袭一下你的C#代码……
有个想法是,让显示方式尽量贴近手头的尺寸明细表。加长图用分数表示,A0+3/4这样。还有就是想试试增加进度条,用多线程让程序不卡死。
加油!用多线程挺好。
想请问下,具体是C#的什么版本呢?都可以打开编辑?
.NET Framework4.7,我是用VS2019写的。
改了一下这个函数,博主可以采纳
///
/// 得到当前页面的图纸尺寸
///
///
private void JudgePaperSize(PdfPage pdfpage)
{
double W = Math.Max(pdfpage.Width.Millimeter, pdfpage.Height.Millimeter);
double H = Math.Min(pdfpage.Width.Millimeter, pdfpage.Height.Millimeter);
//可以使用iTextSharp
//使用GetPageSizeWithRotation函数获取Rectangle时,合并后的pdf有误
//遂改用GetCropBox
//如后续需要获取旋转信息可调用GetPageRotation
/**********************/
//针对合并后的PDF先获取一下CropBox
var pdfRectangle = pdfpage.CropBox;
if (!pdfRectangle.IsEmpty)
{
var factor = 25.4 / 72.0;
W = Math.Max(pdfRectangle.Width * factor, pdfRectangle.Height * factor);
H = Math.Min(pdfRectangle.Width * factor, pdfRectangle.Height * factor);
}
_paperSizeWidth = W;
_paperSizeHeight = H;
_paperSizeName = SizeToTypeName(W, H);
}
楼主你好! 如增加一些其他非标尺寸 如A2加长(420*891mm),A1加长(594*1080mm),如何修改程序代码呢?
修改判断尺寸的代码,增加加长图的判断
很好用