feng582304 发表于 2014-6-9 01:40:30

获取打印机以及相应纸张(更新为批量打印,附件在15楼)

本帖最后由 feng582304 于 2014-11-12 01:12 编辑

(defun feng:plot ( / layout file dcl nameli sizeli pr )
(setq layout (vla-get-ActiveLayout (vla-get-ActiveDocument (vlax-get-acad-object)))
      file (open (setq dcl (VL-FILENAME-MKTEMP nil nil ".dcl")) "w")
      )
(WRITE-LINE
    "plot:dialog {\n
    label = \"打印配置\" ;\n
    width = 100 ;\n
    :row {\n
      :list_box {\n
            label = \"打印机名称:\" ;\n
            key = \"name\" ;\n
      }
      :list_box {\n
      label = \"纸张:\" ;\n
            key = \"size\" ;\n
            height = 50 ;\n
      }\n
    }\n
    ok_cancel;\n
    }\n"
    file
    )
(close file)
(NEW_DIALOG "plot" (LOAD_DIALOG dcl))
(START_LIST "name")
(MAPCAR 'ADD_LIST (setq nameli (cdr (vlax-safearray->list (vlax-variant-value (vla-GetPlotDeviceNames layout))))))
(END_LIST)
(ACTION_TILE "name" "(setq sizeli (feng:plot:size layout nameli $VALUE))")
(ACTION_TILE "accept" "(setq pr (list (GET_TILE \"name\") (GET_TILE \"size\"))) (DONE_DIALOG 1)")
(if (= (START_DIALOG) 1) (princ (setq pr (MAPCAR 'nth (MAPCAR 'atoi pr) (list nameli sizeli)))))
)
(defun feng:plot:size ( layout li nu / sizeli )
(vla-put-ConfigName layout (nth (atoi nu) li))
(vla-RefreshPlotDeviceInfo layout)
(START_LIST "size")
(MAPCAR 'ADD_LIST (setq sizeli (MAPCAR '(LAMBDA (x) (vla-GetLocaleMediaName layout x)) (vlax-safearray->list (vlax-variant-value (vla-GetCanonicalMediaNames layout))))))
(END_LIST)
sizeli
)

ynhh 发表于 2020-12-16 12:21:12

feng582304 发表于 2014-11-12 01:11
之前的代码中的横竖向判断有点问题,修改了另一种判断方式,应该说现在比较理想可靠。只提供布满比例的打印 ...

不足之后就是无法保存打印设置
建议大师再增加保存设置
如CAD中选择上次打印一样
就算保存在当前图中也好
谢谢

陈伟 发表于 2021-9-25 10:52:28

feng582304 发表于 2014-11-12 01:11
之前的代码中的横竖向判断有点问题,修改了另一种判断方式,应该说现在比较理想可靠。只提供布满比例的打印 ...

留着备用,需要批量打印源代码

技术工作室 发表于 2022-9-22 13:08:31


多谢楼主分享批量打印源码

zyhandw 发表于 2014-6-9 09:35:17

试用了下,效果不错,感谢楼主的分享

edata 发表于 2014-6-9 10:46:41

很实用的程序,对于经常打印来说,结合其他源码,可以用来快速设置,判断。。。。

feng582304 发表于 2014-6-9 22:35:44

edata 发表于 2014-6-9 10:46 static/image/common/back.gif
很实用的程序,对于经常打印来说,结合其他源码,可以用来快速设置,判断。。。。

跟我想到一块去了!!!我就是想把之前的批量打印整合一下,使得兼容性更好一点。

edata 发表于 2014-6-9 22:52:09

论坛有个打印配置设置的软件
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=88087&fromuid=338795
也很不错。。。
论坛还有秋枫的批量源码。。
论坛因为你们,资源丰富啊。。。

yiqisese 发表于 2014-6-10 15:22:49

好像          不会用呢

hnfsf 发表于 2014-9-9 18:35:21

怎么修改或增加打印机的纸张设置呢?

690994 发表于 2014-9-9 19:36:43

不错,就是纸规格多时,有点慢

feng582304 发表于 2014-9-18 22:52:43

hnfsf 发表于 2014-9-9 18:35 static/image/common/back.gif
怎么修改或增加打印机的纸张设置呢?

修改或增加应该在打印机特性里弄吧,这个是获取列表的一种方式

clh521 发表于 2014-9-19 08:19:50

多谢多谢,我找了好久的代码终于有了
页: [1] 2 3 4
查看完整版本: 获取打印机以及相应纸张(更新为批量打印,附件在15楼)