找回密码
 立即注册

QQ登录

只需一步,快速开始

诗仙·1957
金牌服务用户   /  发表于:2023-6-10 13:58  /   查看:4440  /  回复:19
本帖最后由 诗仙·1957 于 2023-7-7 15:53 编辑

1686376110408_C0B0C708-67F4-4947-AE67-2888169351BB.png714220885.png
运行这个机器人写的exe
如图,每次运行都会读取exe当前目录的sql.ini配置文件,里面配置了数据库的链接信息,以及打印机表,打印任务表的名称
然后查询当前运行的系统已经添加的全部打印机包含smb共享的打印机,并编号为pr001-pr100的编码规则添加到数据库的打印机表。

然后每隔10秒查询打印任务表的行中 字段打印状态,如果是否就执行打印,打印后修改这个状态为是。
执行打印任务的方式为,该行字段有
image.png275446166.png
然后活字格页面手机上点击 就直接对数据库操作就能实现打印了,活字格页面上执行导出pdf 把该文件存放到服务器的文件夹就可以了。
此方式可以保留页面的格式布局等好处,无需重新布局排版。简约风格。
用途,在制造业中,工人不可能每次需要打印页面的东西都需要到电脑上去点打印选择打印机这样的繁琐操作,有了这个功能之后,页面就可以直接手机打印,现场的打印机就自动打印出来了,无需给打印机配置电脑,打印机需要连接网络就行了。目前市场上的打印机很多插网线的都很便宜了。还有的支持WIFI
最近有项目在论坛大势的推销,收费的插件,让我等白嫖档......嗤之以鼻..
需要的留邮箱,我将免费分享c# 源代码。


2023-07-07更新:
由于之前的代码只是为了实现打印,并没有考虑各种异常情况,在这段时间,不停的根据自己的需求更新了代码, 实现了ping检测打印机的IP地址,读取配置文件也增加了打印机的IP地址配置
如下:
image.png417565307.png



数据库的表也增加了一个运行日志表,用来观察这个exe运行的情况,又时候假死你都不知道,用nssm吧这个exe注册成windows服务后,就可以开机自动运行。
image.png469802550.png
代码中:

static async Task Main(string[] args)
        {
            // 从配置文件读取数据库连接信息和表名称
            LoadConfig();

            // 清空打印机表并添加本地打印机到数据库
            ClearAndAddPrintersToDatabase();

            // 创建定时器,设置间隔为20秒
            System.Timers.Timer timer = new System.Timers.Timer(600000);
            timer.Elapsed += TimerElapsed;
            timer.Start();

            // 异步执行每10秒查询打印状态的方法
            while (true)
            {
                Console.WriteLine("正在查询数据库中打印状态...");
                CheckPrintStatus();
                await Task.Delay(10000);
            }
        }  这里采用了异步2个定时器同时执行,上面的600000毫秒用来每10分钟写一次数据库,这样如果有记录表示程序还是正常的,活字格搞个定期清空数据表就行了。
2. 当时没有考虑打印机是否打印出文件,但是客户手机点击了打印,就在打印机面前一直等,有时候各种因素导致打印机打不出来,客户也不知道具体情况就很烦。
于是增加了判断机制,
image.png165050047.png
分别检测你文件是否存在,打印机ping不ping得通,并更新状态为对应的值。

image.png919242248.png
还额外添加了一个post请求到活字格的服务端命令,由于集成的是钉钉,所以这个服务端命令就根据Post请求传过来的ID查数据库通知到对应的人的钉钉消息。如下图
image.png443185424.png

代码示例:

string query = $"UPDATE `{dayinrenwuTable}` SET 打印状态='{status}' WHERE ID={taskId}";
            connection.Execute(query);
            // 向指定API地址发送post请求
            using (var client = new HttpClient())
            {
                var url = "https://192.168.10.xxx/ServerCommand/printreturn";
                var parameters = new Dictionary<string, string>
                 {
                 { "printTaskID", taskId.ToString() }
                  };

                var content = new FormUrlEncodedContent(parameters);
                content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
                // 设置忽略证书验证
                ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;

                var response = client.PostAsync(url, content).Result;

                // 输出发送post请求的过程信息到控制台
                Console.WriteLine("开始POST请求...");
                // 检查响应状态码
                if (response.IsSuccessStatusCode)
                {
                    // 请求成功
                    Console.WriteLine("Post 请求成功.");
                }
                else
                {
                    // 请求失败
                    Console.WriteLine($"请求失败. Status code: {response.StatusCode}");
                }
            }
特别注意:c#向https服务发送请求,需要忽略证书,反正我这是内网使用。


相当于处理一个任务,会修改数据库的打印状态值,然后POST给活字格告诉状态,然后回写日志。
日志记录大概如下:
image.png47916563.png

这新版本,更新后就更好处理这些异常情况。各位可以根据自己的需求更改更适合自己。
需要新版本的老铁,向我的邮箱344043074@qq.com发送主题为打印服务,我将在空闲时候回复你邮件。包含源代码及配套文件

评分

参与人数 3金币 +66 满意度 +10 收起 理由
Shawn.Liu + 66 赞一个!
lovert + 5
gczxxu + 5

查看全部评分

19 个回复

倒序浏览
JC壹玖玖伍活字格认证
金牌服务用户   /  发表于:2023-6-10 23:31:28
沙发
大佬你好
回复 使用道具 举报
cfanlane
中级会员   /  发表于:2023-6-11 18:16:36
板凳
高大上呀,,牛
回复 使用道具 举报
renho活字格认证
银牌会员   /  发表于:2023-6-12 00:21:33
地板
666
回复 使用道具 举报
zsdtylj
中级会员   /  发表于:2023-6-12 10:51:59
5#
给你个9..6翻了...麻烦大佬发一份源码.947100086@qq.com
tks.
回复 使用道具 举报
诗仙·1957
金牌服务用户   /  发表于:2023-6-13 08:48:55
6#
zsdtylj 发表于 2023-6-12 10:51
给你个9..6翻了...麻烦大佬发一份源码
tks.

已发送
回复 使用道具 举报
Martian活字格认证
中级会员   /  发表于:2023-6-23 14:19:32
7#
回复 使用道具 举报
诗仙·1957
金牌服务用户   /  发表于:2023-6-23 15:17:03
8#
回复 使用道具 举报
Mr.R
中级会员   /  发表于:2023-6-28 14:20:13
9#
7507690@qq.com 感谢大佬!!!
回复 使用道具 举报
kagami活字格认证
金牌服务用户   /  发表于:2023-6-28 14:58:57
10#
354835773@qq.com  感谢大佬!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部