gpt4 book ai didi

linux - 在 Linux 中使用 CUPS 的 GoDEX 打印机中的条码太宽

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:08:07 25 4
gpt4 key购买 nike

我有一台 GoDEX RT700i 打印机 (203 DPI),我想在 Linux (Ubuntu 16.04) 中打印条码我的条形码是 PDF 格式。条形码下方有一个 8 位数字。

在 Windows 中,GoDEX 驱动程序没有问题。条形码和数字打印完美。注意:如果我从 google chrome 打印 PDF,它看起来不错,但如果我从 Adob​​e Acrobat Reader 打印 PDF,它看起来像在 Linux 中。

在Linux下,当我打印条形码时,数字的数字是可以的,与Windows一样,条形的高度也可以,但是每个条形的宽度都比pdf中显示的要大。

我该如何解决这个问题?

Here a photo of the printed barcodes
左边是 Linux 打印的,右边是 Windows 打印的。

还有一些额外的信息:

对于 Linux,我已经为 CUPS 编译并安装了 GoDEX 驱动程序,然后我通过 AppSocket/HP JetDirect 添加了带有 IP 和端口 (9100) 的打印机。
然后,我选择PPD文件godex-rt-700i.ppd

这两行在ppd文件中。也许它们与问题有关:

 TTRasterizer: Type42
*cupsFilter: "application/vnd.cups-raster 50 rastertoezpl"

当我发送打印订单时,我意识到该作业有 3 个过滤器:

pdftopdf (application/pdf to application/vnd.cups-pdf, cost 66)
gstoraster (application/vnd.cups-pdf to application/vnd.cups-raster, cost 99)
rastertoezpl (application/vnd.cups-raster to printer/GODEX-RT700i, cost 50)

rastertoezpl.c 文件中,我看到有一个函数 (GDXCompress) 可以压缩 Godex 打印机的输出行。
我认为压缩可能会以某种方式影响条形码,因此我尝试停用该功能 (CompBuffer = NULL) 并重新编译驱动程序,但这并没有解决任何问题。

这些是每个过滤器的输出:

All files (原始和中间输出)

当我发送 original PDF file要打印,这两个文件是由 /var/spool/cups/ 中的 cups 生成的:
d00122-001 (pdf)
c00122(未知)

1。 pdftopdf (/usr/lib/cups/filter/pdftopdf):
/usr/lib/cups/daemon/cups-exec -g 7 -n 0 -u 7 none/usr/lib/cups/filter/pdftopdf MY_PRINTER 122 my_user 00000378 1 "PageSize=Custom.56.69x65.20 Collat​​e ColorModel=Grayscale Duplex=None job-uuid=urn:uuid:7f84fc46-1965-35d2-6a72-e2e73ab0264b job-originating-host-name=localhost date-time-at-creation= date-time-at-processing=创建时间=1488464765 处理时间=1488464765"/var/spool/cups/d00122-001 > output_pdf2pdf.pdf
output_pdf2pdf.pdf (pdf)

2.gstoraster (/usr/lib/cups/filter/gstoraster):
/usr/lib/cups/daemon/cups-exec -g 7 -n 0 -u 7 none/usr/lib/cups/filter/gstoraster MY_PRINTER 122 my_user 00000378 1 "PageSize=Custom.56.69x65.20 Collat​​e ColorModel=Grayscale Duplex=None job-uuid=urn:uuid:7f84fc46-1965-35d2-6a72-e2e73ab0264b job-originating-host-name=localhost date-time-at-creation= date-time-at-processing=创建时间=1488464765 处理时间=1488464765"
output_gstoraster.ras (ras)
此文件可以通过 rasterview 打开程序

3.rastertoezpl (/usr/lib/cups/filter/rastertoezpl):
/usr/lib/cups/daemon/cups-exec -g 7 -n 0 -u 7 none/usr/lib/cups/filter/rastertoezpl MY_PRINTER 122 my_user 00000378 1 "PageSize=Custom.56.69x65.20 Collat​​e ColorModel=Grayscale Duplex=None job-uuid=urn:uuid:7f84fc46-1965-35d2-6a72-e2e73ab0264b job-originating-host-name=localhost date-time-at-creation= date-time-at-processing=创建时间=1488464765 处理时间=1488464765"
它不创建任何文件。它将打印机订单直接发送到打印机

版本:

Ghostscript = GPL Ghostscript 9.18 Artifex Software
cups = 2.1.3-4
pdftopdf = cups-filters 1.8.3-2ubuntu3.1

最佳答案

您使用的是哪个版本的各种组件(CUPS、pdftpdf 和 Ghostscript)?

您是否检查过从 pdftopdf 生成的中间文件以查看该 PDF 文件的外观?

您是否检查过 gstoraster 生成的 CUPS 栅格是否正确?

我们讨论的差异究竟有多大?一个像素,一英寸?请记住,这显然是一个 203 dpi 设备,因此一个像素相当多。

鉴于管道中有 3 个阶段,您应该做的第一件事是尝试找出导致问题的步骤。首先捕获每个阶段的输出;从 pdftopdf 生成的 PDF,然后是从 gstoraster 生成的 CUPS 光栅文件。您可以单独检查每一个,看看它们是否显示您的问题。如果他们不这样做,那么问题一定来自最后一步“rastertoezpl”,您需要知道该代码的人。否则,您将能够确定问题是出在 pdftopdf 步骤还是 gstoraster 步骤。在任何情况下,您都可以寻求具体帮助。

PPD 文件的内容不太可能对此处产生任何影响(除了指定驱动打印机所需的最终过滤器之外)。当然,没有看到原文件,很难判断,可能条形码是TrueType字体.....

[编辑]

好吧,我仍然无法在您的问题中看到 Ghostscript 命令行。我无法运行 CUPS,也无法构建 RasterView,因为它需要一堆我根本没有的依赖项。

但是,我可以将它运行到 TIFF。当分辨率足够低时,结果与您的照片相同。

您的问题是我在下面的评论中发布的错误线程中的评论 17 和 18 中描述的问题。 PostScript(和 PDF)成像模型表明,当触摸像素的任何部分时,整个像素都会渲染到输出。

您的 PDF 将条形码绘制为一系列(矢量)矩形,使用的坐标和尺寸在设备的底层像素上未精确对齐。

如果您使用 Adob​​e Acrobat 和“另存为”TIFF,您会看到完全相同的问题(您需要使用“另存为”对话框中的“设置”按钮将输出分辨率设置为 203 dpi)。

关于这个问题的bug线程有很长的讨论,有很多可能的解决方案;

  1. 编写 PostScript(或 PDF),使坐标精确地固定在设备网格上。这可能很难做到,尤其是当您通过 pdf2pdf 运行文件时。
  2. 通过首先绘制一个大矩形来绘制条形,然后将条形之间的空间绘制为白色。这可能会使条形变“瘦”,但它们不会合并。如果打印机是热打印机,则热扩散会降低效果。
  3. 将条形码生成为图像而不是矢量。图片不遵循“像素规则的任何部分”,而是使用“像素中心”,这可能会(至少稍微)提供更好的结果。
  4. 使用条形码字体。字体也使用不同的绘制方法,因为如果你减小字体大小,如果你使用像素的任何部分,它很快就会变成一系列黑色 Blob 。

基本上,您正在尝试将形状绘制到公差范围内,这在使用 PostScript/PDF 时在像这样的低分辨率设备上根本不可能实现。

关于linux - 在 Linux 中使用 CUPS 的 GoDEX 打印机中的条码太宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42534767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com