首页 > 编程语言 >c# 判断图片、pdf是A0、A1、A2、A3、A4

c# 判断图片、pdf是A0、A1、A2、A3、A4

时间:2024-03-11 18:44:36浏览次数:34  
标签:case break c# A1 A0 pdf checkSize mm

//("A0 841*1189(mm)999949");

//("A1 594*841(mm)499554");

//("A2 420*594(mm)249485");

//("A3 297*420(mm)124740");

//("A4 210*297(mm)62370");

//("B3 353*500(mm)176500");

//("B4 250*353(mm)88250");

//("B6 125*176(mm)22000");

1.图片

int[] array = { 999949, 499554, 249485, 124740, 62370};

string path = @"E:\测试格式图片\A0.jpg";

using (System.Drawing.Image img = System.Drawing.Image.FromFile(path))

{

float dpiX = img.HorizontalResolution;

float dpiY = img.VerticalResolution;

double w = 1.0 * img.Width / dpiX * 25.4;

double h = 1.0 * img.Height / dpiY * 25.4;

string checkSize = "";

var nearest = array.OrderBy(x => Math.Abs((long)x - w * h)).First();

switch (nearest)

{

case 999949: checkSize = "A0";

break;

case 499554: checkSize = "A1";

break;

case 249485: checkSize = "A2";

break;

case 124740: checkSize = "A3";

break;

case 62370: checkSize = "A4";

break;

default: checkSize = "未判断出";

break;

}

}

2. pdf

需引用iTextSharp.dll

https://download.csdn.net/download/weixin_42020830/87610255

string path1 = @"E:\测试格式图片\D.3.1.2019-0782-0017.pdf";

PdfReader reader = new PdfReader(path1);

int iPageNum = reader.NumberOfPages; //获取pdf总页数

for (int i = 1; i < iPageNum + 1; i++)

{

string checkSize = "";

iTextSharp.text.Rectangle rc = reader.GetPageSize(i); //pdf拿到第一页数据

float height = rc.Height; //pdf的长

float width = rc.Width;//pdf的宽

// A0 长X宽 118.9X84.1cm 10011.38

// A1 长X宽 84.1X59.4cm 4995.54

// A2 长X宽 59.4X42cm 2494.80

// A3 长X宽 42X29.7cm 1234.80

// A4 长X宽 29.7X21cm 623.70

double v1 = height * 25.4 / 72; //换算后真实高

double v2 = width * 25.4 / 72; //换算后真实宽

double v3 = v1 * v2;

var nearest = array.OrderBy(x => Math.Abs((long)x - v3)).First();

switch (nearest)

{

case 999949: checkSize = "A0";

break;

case 499554: checkSize = "A1";

break;

case 249485: checkSize = "A2";

break;

case 124740: checkSize = "A3";

break;

case 62370: checkSize = "A4";

break;

default: checkSize = "未判断出";

break;

}

}

reader.Close(); //不关闭会一直占用pdf资源,对接下来的操作会有影响

标签:case,break,c#,A1,A0,pdf,checkSize,mm
From: https://www.cnblogs.com/jigeqiu/p/18066811

相关文章

  • langchain-chat
    debugstartup.py:454"/root/pyenv/bin/streamlit"模型配置路径-替换模型startup.py:688config=get_model_worker_config(model_name)model_config.py找到模型加载代码fastchat库支持的模型FastChat/docs/model_support.mdatmain·lm-sys/FastChat·GitHubstartup.p......
  • RC4算法:流密码算法的经典之作
    一、RC4算法的起源与演变RC4算法是由著名密码学家RonRivest在1987年设计的一种流密码算法,其名字来源于RivestCipher4。RC4算法简单高效,被广泛应用于数据加密和网络安全领域。尽管RC4算法在早期被广泛使用,但随着时间的推移,一些安全性问题逐渐暴露,导致其在一些场景下被取代......
  • SVTB SRAMC - 2
    内容写验证计划需要参照designspecAHB-SRAMC功能验证计划SVTB架构图验证平台目录结构ahb_sramc_svtbdoc-文档rtl-dutverif-验证代码envagentsimtbtest如何编写SVTBMakefilefilelistSVTBTOPsvtb:1.根据spec......
  • ESP32CAM使用Quirc识别二维码并连接WIFI
    ESP32CAM使用Quirc识别二维码并连接WIFI网上有教程,但是是要做出来很难,或者说做出来报错识别不了。前提:搭建好ESP-IDF环境CAMERA能成功初始化此处用的二维码识别库是用的quirc,如下这个和Github下载的差不多,加了个CMakeList,我会把这个传到我的Github上,感兴趣去下载Lesterbor/E......
  • 如何利用cps推广进行网络兼职?
    如今的互联网发展很快、变革很大,从最早用免费空间做个人主页,到后来购买虚拟主机做个人网站,到后来的VPS主机和独立服务器,直到现在一直使用云服务器。我经历了早期互联网的萌芽时期,也错过了很多互联网的机遇。从最早靠传统广告联盟盈利,到后来做包月付费广告。直到2019年接触了解cps......
  • The Best Car Diagnostic Tool Among Diagnostic and Testing Tools
    Inthismodernera,carshavebecomeanessentialpartofourlives.However,likeanyothermachine,theyarepronetobreakdownsandmalfunctions.Whenfacedwithcartroubles,itiscrucialtohavetherightdiagnosticandtestingtoolsatyourdisposa......
  • DevExpress Winforms 等待界面代码 SplashScreen
    更新记录点击查看2024年3月11日发布。2023年6月12日初始化。代码//等待界面显示SplashScreenManager.ShowSkinSplashScreen(title:"正在创建新工程",subtitle:"文件准备中,请稍等~",//footer:"DeveloperExpressInc."+Environment.NewLine+"All......
  • python爬虫scrapy之如何同时执行多个scrapy爬行任务
    来源:https://www.shanhubei.com/archives/23601.html1、顺序执行:fromscrapy.cmdlineimportexecuteexecute(['scrapy','crawl','httpbin'])2、同时进行setting=get_project_settings()process=CrawlerProcess(setting)didntWo......
  • 【论文阅读】N-BEATS Neural basis expansion analysis for interpretable time serie
    原始题目:N-BEATS:Neuralbasisexpansionanalysisforinterpretabletimeseriesforecasting中文翻译:N-BEATS:可解释时间序列预测的神经基展开分析发表时间:2020-02-20平台:arXiv文章链接:http://arxiv.org/abs/1905.10437开源代码:https://github.com/servicenow/n-beats......
  • [3] C++面向对象编程
    Day1函数指针数组简写函数指针typedeftypedefint(*FunPtr)(int,int);FunPtrFunArr[1]={Add};内联函数#pragmaregion内联函数//避免函数跳转对于程序的额外开销//有两种写法1).h中写实现文件(在.h中同时写声明和实现)//2)inline关键字......