跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 咨询一下关于 Python 打印 pdf 的问题
未分類
21 3 月 2021

咨询一下关于 Python 打印 pdf 的问题

咨询一下关于 Python 打印 pdf 的问题

資深大佬 : evilic 3

各位帮帮忙,实在是没有思路了……

问题是这样的,我有一个热敏打印机,打印订单用的。用的是 cainiao 的打印组件。直接用热敏打印机打单肯定是没有问题的。 现在有一个需求,就是要把订单给分类排序,让仓库好分拣一些,把同一类商品的单子在出单的时候放在一起。不过单子在录入的时候却是有先后顺序的。 为了解决这个问题,我的想法是,先用 cainiao 把单子打到 pdf 中去,然后再程序排序后,按分类后的正确顺序,把 pdf 对应的页面发送到打印机打印——如果原来 pdf 文件中的顺序是[1,2,3…],可能程序最终处理的结果是发送给打印机[2,1,3]…

我查找解决方案,走的路其实和 https://stackoverflow.com/questions/27195594/python-silent-print-pdf-to-specific-printer 帖子里的差不多。 首先是 AcroRD32 总是启动,然后看到帖子里面说的 ghostscript,就开始改用 ghostscript 进行尝试(不是 gsprint )。

gswin64c.exe -sDEVICE=mswinpr2 -sOutputFile="%printer%Deli DL-888B" "test.pdf" 

果真单子是能打出来的……但另外的问题产生了,pdf 的大小是 A4 的大小,热敏纸的大小是 76x130mm 的,于是,打印 pdf 中的一页,会出 3 张热敏纸,其中第 2,3 页是空白的。 查文档,看文章 https://www.ghostscript.com/doc/current/Use.htm ,加上 -dDEVICEWIDTHPOINTS=w -dDEVICEHEIGHTPOINTS=h -dFIXEDMEDIA 参数,各种调整,打印出来的东西要么是只有一张纸且是空白,要么是一张纸但字儿是缩小后的,要么还是一下出 3 张纸且还是缩小的。(打印出来的效果其实就和 adobe reader 预览里的一样,不能跑到左上角)

继续查解决方法,https://stackoverflow.com/questions/3447720/how-can-i-shift-page-images-in-pdf-files-more-to-the-left-or-to-the-right ,知道 ghostscript 可以设置 PageOffset,不知道我理解的对不对,总是设置无果,报错。

由于 chrome 或者 edge 中的打印是正确的(无论一个 pdf 原本是多大,总是从左上打印到一张纸上后转入下一页的打印),于是我想着有没有 headless 的处理办法,或者命令的处理方法,但是搜索无果。

至此,方法穷了,来这里来了。 求各位给指个方向吧。谢谢了

大佬有話說 (13)

  • 主 資深大佬 : evilic

    补充一下,我之所以不先排序,再打单的原因是怕打乱了顺序不好发货……
    如果大家都没有什么好的思路的话,我还是先排序再打单吧。

  • 資深大佬 : hs0000t

    没用过热敏打印机,帮顶

  • 資深大佬 : ye4tar

    先查打印机文档,看他支持的纸张尺寸,接着保存 pdf 的时候就要设定好出多。然后按照你既定的方法走

  • 主 資深大佬 : evilic

    @hs0000t 谢谢

  • 主 資深大佬 : evilic

    @ye4tar 这个 pdf 是由 cainiao 组件直接出的,a4 纸大小,我无法调整…………

  • 資深大佬 : cctrv

    https://pypi.org/project/cainiao/

    自己組織數據去打印不就沒有 A4 那個問題嗎?

  • 資深大佬 : encro

    初略看了下这个组件,不是有模板吗?最多修改或者自定义一个模板就行了吧?

  • 資深大佬 : encro

    曾经用过快递鸟,也可以。

  • 資深大佬 : ScoutWang

    把 pdf 转成 jpg,再调整为热敏纸的大小,再送入打印机打印

  • 主 資深大佬 : evilic

    @cctrv 万分感谢!

  • 主 資深大佬 : evilic

    @encro 不是这样的……模板是可以调整的,但是打印到 pdf 中的话,pdf 的页面总是 a4 纸的。只是 a4 纸上的内容,是你设置的大小。

  • 主 資深大佬 : evilic

    @ScoutWang 恩呐,这个确实应该也是可行的。我准备先试试上的方法,直接上 cainiao 。

  • 資深大佬 : encro

    其实我觉得没有必要这么麻烦,先塞入队列 1,然后排序加入队列 2,然后取出队列 2 有序文件,发送给打印机。

    没必要转 PDF,虽然我知道改 pdf 页面尺寸的一堆方法。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具