打印机

ANL实验室快速打印解决方案

发布时间:2022/8/5 18:52:57   
1.靠山

ANL打印机不失为寰球上最难用的打印机。目下,ANL打印机接入ANL网络,与SJTU网络不能互联互通;同时由于笔者没有ANL网络的经管权力(说来极度愧疚,来ANL这么久于今不了解ANL网络的经管者是谁,自己谍报技能遭到严峻置疑),不能直接操纵;再者打印机时常联接不上或许搜索不到,致使屡屡打印都要从SJTU网络切换至ANL网络再链接打印机,极度耗时。为了防备每单方联接时形成的额外开消,在本项目中献祭一台策画机(托管策画机)特意用来经管打印机,并为其余主机供应效劳。

2.布局架构

本项目首要包含两部份:内网穿透部份和打印经管部份。

内网穿透:由于托管策画机经由ANL内网联接打印机,且不与SJTU在统一网段,无奈经由内网造访,因而须要实行内网穿透,为托管打印机供应SJTU内网地方或公网地方。固然,由于托管策画机一样不能直接造访SJTU内网中的效劳器,因而姑且思考危害较高的公网效劳器帮忙内网穿透。

打印经管:本项目为打印经管部份,实行了靠山直接操纵打印机以及一个容易的前端。经由前端上传文献,交由打印机打印,同时前端能够查阅打印行列等一些容易消息。

3.本领挑战

本项目首要存在如下本领挑战:

扶助根本格式PDF的打印

本项目以PDF文献格式为例,思考到PDF为最罕见的格式,应优先扶助该类格式的打印。但是PDF格式并非直接由操纵系统扶助,而是由运用扶助。换言之,直接挪用操纵系统供应的打印api对一个PDF文档实行打印,无奈得到预期的打印后果,而是打印出PDF二进制再经由某种解码后的字符串。因而须要从运用层处理这一题目。

图1

图1展现了一个直接挪用系统api打印PDF文档的后果,在纸张的最上方打出了一行乱码(上面的表格是第二次经由运用层打印的,为防备尝试形成不须要的资本滥用,该纸张被屡屡打印)。

展现打印行列及各个职责状况

当用户提交打印功课后,打印经管程序应向用户反应目下的打印机哄骗景况,以得到更好的用户体会。

调试阶段须要防备真机尝试,以防备资本滥用

本项方针建设包含很多冗杂的细节,对这些细节实行调试应该防备直接真机运转,以防备电力/油墨和纸张等资本滥用。

4.系统策画

为应对上述挑战,本系统策画了如下的处理摆设,以实行高效的打印机经管程序。

采取福昕浏览器做为运用层对象扶助PDF格式打印

咱们先将目力聚焦于AdobePDFReader,AdobePDFReader的主程序AcrodRd32供应了吩咐行打印接口,其挪用格式为(以win32操纵系统为例)

AcrodRd32.exe/p"文档名.pdf"

但是该运用无奈实行批量打印操纵。这是由于施行上述吩咐会强迫启动该运用的GUI,且难以从打印经管程序(父经由)中合拢,假使经管程序做为效劳端,则无奈合拢的GUI将会占用大批内存,致使托管策画机的资本疾速干涸,进而致使宕机等危害。经由调研和尝试,咱们觉察福昕浏览器的主程序与AdobePDFReader哄骗相仿,且吩咐行打印不会触发GUI,因而托管策画机的开消能够坚持在有限局限内。

采取DataTable组件展现打印行列

咱们采取了DataTable实行打印行列展现。DataTable从靠山接管一个包含了打印行列消息的json列表目标,并实行衬托。咱们审慎浏览了win32print文档,将关键消息正当映照并展现在前端上。

调试阶段将打印机脱机责罚,以防过多的资本滥用

在系统调试阶段,咱们将打印机脱机责罚,以保证打印机不会真实劳动。同时打印职责能够寻常加入打印行列,进而完竣大部份调试过程。此处咱们假使托管策画机和打印机的链接褂讪,因而脱机阶段的调试能够视为一种仿真实验。

5.系统实行

咱们经由Flask框架对本系统实行了实行。图2展现了目下界面及机能。尽人皆知我不太通晓前端,姑且只做了个底细。

图26.尝试

咱们将前述调试中的脱机尝试视为仿真实验,其它咱们还实行了小批的真机尝试(共损耗十页纸张及极小批油墨),在纸张足够的景况下,全链路运转褂讪。后续运转中将再统计数据。

7.他日摆设优化界面IP过滤,防备外网IP经由公网穿透效劳器挪用打印机清空文献缓存,免得占用过多储备平安题目,方法打印文献被偷取展现更多打印机状体消息,比如缺纸缺墨等揭示。8.造访地方

本项目还在进一步查核,在实行平安部份以前,暂不怒放公网地方,敬请憧憬。

雷帅



转载请注明:http://www.aideyishus.com/lkcf/1299.html

------分隔线----------------------------

热点文章

  • 没有热点文章

推荐文章

  • 没有推荐文章