tnblog
首页
视频
资源
登录

.Net Core 3.1 调用 linux usb指令打印(ubuntu20.04)

6324人阅读 2021/1/11 10:00 总访问:103548 评论:1 收藏:0 手机
分类: linux

    usb 指令打印 使用 kernel32.dll 进行输入打印的时候 会发现 在Windows上支持很好 但是linux 就会有有各种问题 

所以 在 linux上 不推荐 使用 一些 Windows api 打包 成 so文件 也感觉有不对劲的地方



  1. 插入打印机 ubuntu会识别出来usb打印机

    在/dev/usb/ 路径下 会有 lp开头的文件 把需要打印的 字节数据 写入 对应的 lp文件 即可打印出数据


  2. 假设我 插入的u口 是 lp0 我需要直接在 ubuntu 终端输出打印 

  1.  echo "printstr" >/dev/usb/lp0


    使用.Net Core 程序 进行打印  获取 dev/usb 下所有lp 开头的 文件 做一个 下拉选择框 

  1.                 List<string> list = new List<string>();
  2.                 string path = "/dev/usb";
  3.                 DirectoryInfo di = new DirectoryInfo(path);
  4.                 //找到该目录下的文件 
  5.                 FileInfo[] fis = di.GetFiles();
  6.                 foreach (FileInfo fi in fis)
  7.                 {
  8.                     if (fi.Name.Contains("lp"))
  9.                         list.Add(fi.Name);
  10.                 }
  11.                 return list;

打印:将准备好的byte[] 写入 /dev/usb/lp?  就可以完成打印

  1.  public static bool WriteFileNew(byte[] lpBuffer)
  2.         {
  3.             string path = "/dev/usb/lp0";
  4.             IocManager._log.LoggerView("path:" + path);
  5.             using (FileStream fileStream = new FileStream(path, FileMode.Open))
  6.             { 
  7.                 fileStream.Write(lpBuffer, 0, lpBuffer.Length);
  8.             }
  9.             
  10.             return true;
  11.         }

注:/dev/usb 文件 只有 root 才能进行访问写入 dotnet run 的时候 需要 su root

评价

尘叶心繁

2021/1/13 16:30:03

[威武]

vs2017 对 COM 组件的调用返回了错误 HRESULT E_FAIL

vs2017添加引用报错 对 COM 组件的调用返回了错误 HRESULT E_FAIL 1.以管理员身份打开vs2017开发人员命令指示符 2...

微信开发三 使用反射根据消息类型自动调用不同方法

微信只会向我们一个地方推送消息,如果全部逻辑都写到一起,代码会非常多。所以我们可以考虑通过消息类型,来实现不同的消...

AJAX调用webapi上传图片或文件。设置token,设置Authorization Bearer

AJAX调用webapi上传图片或文件,并返回刚上传的文件名。废话不多说直接贴代码吧html相关:&lt;!DOCTYPEhtml&gt; &lt;html&...

当浏览器调用第三方设备时必须要用到PWA

说白了,调用页面要引用两个文件下面地址进行下载,默认第一个https://www.pwabuilder.com/serviceworker如想对PWA有过多了...

封装调用api接口的通用方法(抱含存调用接口日志)

protectedstaticreadonlylog4net.ILog_log=log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod(...

后台调用菜单接口+自定义菜单

假如有一天你喝醉了,一个人走在街头,会歇斯底里的喊出谁的名字?时光如流水般逝去,站在青春的末稍,扭过头,观望曾经走...

WebAPI调用post传值

创建core项目在项目中创建文件夹。在文件夹中创建webapi控制器,定义好路由。在页面上引入js文件。通过ajax调用api后台方法...

WebAPI调用Put传值

创建core项目在项目中创建文件夹。在文件夹中创建webapi控制器,定义好路由。在页面上引入js文件。通过ajax调用api后台方法...

WebAPI调用Delete传值

结合之前post,put方式,综上所述。首先路由传id。在方法里面定义参数在前台使用ajax传值调试进去则成功了不使用路由直接传...

.net core发布gRPC项目和远程调用

发布gRPC项目的过程和其他项目一样,右键发布即可发布出来后会看到有个.exe的程序然后直接丢到服务器双击运行即可不放到iis...

c调用百度AI通用物体和场景识别

publicclassAdvancedGeneral { //通用物体和场景识别 publicstaticAdvancedGeneralModeladvancedGeneral(stringtoken) ...

c调用百度AI银行卡识别

code:publicclassBankCard { //银行卡识别 publicstaticBankCardModelbankCard(stringtoken) { stringhost=&quot;http...

c调用百度AI手写文字识别

封装调用接口代码:publicclassBaiduAIBase64Tool { publicstaticstringInvoke(stringurl,stringimgurl) { //stringhos...

c调用百度AI新闻摘要接口

代码如下:publicclassNewsSummaryTools { publicstaticJObjectGetNewsSummary(stringtoken) { HttpClienthttpClient=n...

c调用百度AI文章标签识别

code:publicclassArticleTag { ///&lt;summary&gt; ///访问文章标签接口 ///&lt;/summary&gt; ///&lt;paramname=&quot...

c调用阿里云实现图像打标

url方式:publicvoidInvoke() { //ak,sk信息设置 stringak_id=&quot;yourak_id&quot;; stringak_secret=&quot;yourak_s...
我要变强不变秃
排名
32
文章
20
粉丝
4
评论
15
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术