鱼C论坛

 找回密码
 立即注册
楼主: 万里晴空

pythonnet库(clr)加载了dll文件后,为什么里面的内部函数变了无法调用?

[复制链接]
回帖奖励 73 鱼币 回复本帖可获得 1 鱼币奖励! 每人限 1 次(中奖概率 70%)
发表于 2021-6-27 08:38:18 | 显示全部楼层

回帖奖励 +1 鱼币

万里晴空 发表于 2021-6-26 08:19
这个DLL是一个打印软件的调用文件具体用什么语言开发的不太清楚,之前是用C#调用开发来实现打印的,在学p ...

问题大了,但是我不懂c语言,我给你个链接吧
https://www.cnblogs.com/chengxuyuancc/p/6374239.html
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-2 20:45:12 | 显示全部楼层
唉,这么久了一直没有解决,不过还好最终通过查阅各种相关资料找到了曲线救国的方式,现在发出来让遇到和我一样问题的朋友参考下。

  1. # 先安装 codesoft 程序
  2. # 然后找到 安装pywin32包,然后通过python根目录包文件夹中找到win32com->client->运行makepy.py文件,点击对应codesoft程序
  3. # 生成com组件对接文件,然后在对接文件中查看最后一个类的调用注释说明,找到调用时用到的com组件名
  4. # 然后import win32com.client,然后用win32com.client.Dispatch("Codesoft.Application")创建对象
  5. # 可以正常调用了

  6. import os
  7. import sys
  8. import win32com.client

  9. currentFolder = os.getcwd()  # 获取当前路径,
  10. sys.path.append(currentFolder)  # 加载当前路径, 否则clr.AddReference("BarTender")会报找不到文件


  11. def PrintLAB(printer, printCount, filePath, items):
  12.     """调用CodeSoft打印标签,通过调用com组件实现"""
  13.     "printer-打印机名"
  14.     "printCount-打印份数"
  15.     "filePath-打印模版路径"
  16.     "items-变量字典集"
  17.     try:
  18.         # 创建  Application

  19.         csApp = win32com.client.Dispatch("Codesoft.Application")

  20.         # 模版路径
  21.         labfilename = filePath  # currentFolder + "\\333.lab"

  22.         # 打开标签模板文件
  23.         csApp.Document.Open(labfilename, False)

  24.         # 激活加载的文档
  25.         doc = csApp.ActiveDocument

  26.         # 设置打印机名
  27.         doc.SelectPrinter(printer)

  28.         # 模版文件的变量中传值
  29.         try:
  30.             # print(doc.Variables.Count)   # 模板文件中变量个数统计
  31.             # doc.Variables.Item(item).Value = items[item]  # 方法已被__getitem__替代
  32.             for key in items.keys():
  33.                 if doc.Variables.__getitem__(key):
  34.                     doc.Variables.__getitem__(key).Value = items[key]   # 向模版变量中添加变量值
  35.         except Exception as e:
  36.             return e
  37.         else:
  38.             # 设置打印张数
  39.             doc.Print(printCount)    # 打印份数执行后自动开始打印
  40.         finally:
  41.             doc.Close                # 关闭当前文档
  42.             csApp.Quit               # 退出当前应用
  43.             return True, None
  44.     except Exception as e:
  45.         return False, e.args


  46. if __name__ == "__main__":
  47.     items = {'IMEI1': '11111', 'IMEI3': '22222', 'VC': '33333'}
  48.     PrintLAB('Doro PDF Writer', '1', r'C:\Users\打印\001\111.Lab', items)


  49.    
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-3 15:38:18 | 显示全部楼层

回帖奖励 +1 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-7-26 03:08:24 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-7-28 00:40:43 | 显示全部楼层

回帖奖励 +1 鱼币

我不懂C语言啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-19 08:10:36 | 显示全部楼层
厉害,python + codesoft 只找到你这一份有效参考代码
只是照着试了下,没报错,打印机也没反应,就很尴尬...
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-19 23:36:10 From FishC Mobile | 显示全部楼层

回帖奖励 +1 鱼币

可行!感谢分享!补充说明下,我测试用的codesoft9,生成com组件的时候select library选labelmanager,引用dispatch创建对象的时候用lppx.Application。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-20 08:38:18 | 显示全部楼层

回帖奖励 +1 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-12-20 23:09:47 | 显示全部楼层

回帖奖励 +1 鱼币

兄弟,能否实施python调用bartender来打印条码呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-21 15:40:14 | 显示全部楼层

回帖奖励 +1 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-1-8 07:58:46 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-1-8 09:30:46 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-1-9 18:54:09 | 显示全部楼层

回帖奖励 +1 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-1-9 19:47:55 | 显示全部楼层

回帖奖励 +1 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-6-17 09:38:38 | 显示全部楼层

回帖奖励 +1 鱼币

大佬,python怎么调用BarTender打印?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-17 13:58:15 | 显示全部楼层

回帖奖励 +1 鱼币


                               
登录/注册后可看大图
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-18 14:09:53 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-6-18 14:12:23 | 显示全部楼层

回帖奖励 +1 鱼币

不清楚
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-25 16:31:56 | 显示全部楼层

回帖奖励 +1 鱼币

+1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-6-26 10:18:23 | 显示全部楼层

回帖奖励 +1 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-27 05:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表