CUPS-云打印 CentOS
CUPS-cloud-print CentOS
我正在尝试打印到为 google 云打印帐户共享的打印机。我正在尝试使用 CUPS-Cloud-Print,它允许您将云打印帐户中的打印机添加到本地 CUPS 服务器。这个问题是我的打印出错了。因此,如果有人最近在基于 CentOS/RedHat 的系统上使用过 CUPS-Cloud-Print 并使其正常工作,那也会有所帮助。
根据我在这个项目上发布的 issue,我可以将文档保存到 google 驱动器,只是无法打印。所以我知道身份验证正在工作。我还可以通过各种浏览器(甚至是有问题的 CentOS 机器上的浏览器)打印到同一台打印机,所以问题不在于打印机或打印机的网络,也不在于打印机在 Google Cloud Print 中的设置。也许有一种方法可以启用更详细的日志记录来找出真正的问题(比如它可能无法将其转换为 PDF)。我得到的错误是 "Error response from Cloud Print for type pdf: Failed to parse the print job's print ticket."
更多信息:我使用我的 cups 日志中的同一张票进入了模拟页面 here(见下文)。这个模拟页面需要一个 PDF(CUPS-Cloud-Print 帮我转换),所以我提供了一个真实的 PDF。第一次,我用下面的票试了一下,得到了 CUPS-Cloud-Print 得到的同样的错误。第二次,我把票原封不动地留在模拟器里,打印的很好
无论我使用 CUPS-Cloud-Print 还是模拟工具,Cloud Print 似乎有问题的来自 CUPS 日志的票证:
{"print": {"color": {"type": "STANDARD_COLOR"}, "margins": {"type": "STANDARD"}, "dpi": {"vendor_id": "epns200:Level2", "vertical_dpi": 360, "horizontal_dpi": 360}}, "version": "1.0"}
从模拟器收集到的更多信息:
这张票有效:
{
"print":
{
"color":
{
"type": "STANDARD_COLOR"
},
"dpi":
{
"vendor_id": "epns200:Level2",
"vertical_dpi": 360,
"horizontal_dpi": 360
}
},
"version": "1.0"
}
并且这张票无效:
{
"print":
{
"color":
{
"type": "STANDARD_COLOR"
},
"margins":
{
"type": "STANDARD"
}
},
"version": "1.0"
}
看来边距有问题,但我看不出有什么问题。但是当我将它与 Google 文档 here 进行比较时,我没有发现任何问题。有什么想法吗?
原来issue #114解决了我的问题。基本上,我必须从
更改 /usr/share/cloudprint-cups/printer.py
方法 _getCapabilities
return self._getCapabilitiesDict(attrArray,
self['capabilities']['printer'],
overridecapabilities)
到
# HACK HERE
#return self._getCapabilitiesDict(attrArray,
result = self._getCapabilitiesDict(attrArray,
self['capabilities']['printer'],
overridecapabilities)
result['print'].pop('margins', None)
#result['print']['duplex']['type'] = 'LONG_EDGE'
return result
对我来说关键是 removing/popping Google 打印票的边距,因为这是导致 Google 拒绝 Google 打印票的原因。无论出于何种原因,双工线路导致某些东西崩溃,这就是它被注释掉的原因。
我正在尝试打印到为 google 云打印帐户共享的打印机。我正在尝试使用 CUPS-Cloud-Print,它允许您将云打印帐户中的打印机添加到本地 CUPS 服务器。这个问题是我的打印出错了。因此,如果有人最近在基于 CentOS/RedHat 的系统上使用过 CUPS-Cloud-Print 并使其正常工作,那也会有所帮助。
根据我在这个项目上发布的 issue,我可以将文档保存到 google 驱动器,只是无法打印。所以我知道身份验证正在工作。我还可以通过各种浏览器(甚至是有问题的 CentOS 机器上的浏览器)打印到同一台打印机,所以问题不在于打印机或打印机的网络,也不在于打印机在 Google Cloud Print 中的设置。也许有一种方法可以启用更详细的日志记录来找出真正的问题(比如它可能无法将其转换为 PDF)。我得到的错误是 "Error response from Cloud Print for type pdf: Failed to parse the print job's print ticket."
更多信息:我使用我的 cups 日志中的同一张票进入了模拟页面 here(见下文)。这个模拟页面需要一个 PDF(CUPS-Cloud-Print 帮我转换),所以我提供了一个真实的 PDF。第一次,我用下面的票试了一下,得到了 CUPS-Cloud-Print 得到的同样的错误。第二次,我把票原封不动地留在模拟器里,打印的很好
无论我使用 CUPS-Cloud-Print 还是模拟工具,Cloud Print 似乎有问题的来自 CUPS 日志的票证:
{"print": {"color": {"type": "STANDARD_COLOR"}, "margins": {"type": "STANDARD"}, "dpi": {"vendor_id": "epns200:Level2", "vertical_dpi": 360, "horizontal_dpi": 360}}, "version": "1.0"}
从模拟器收集到的更多信息:
这张票有效:
{
"print":
{
"color":
{
"type": "STANDARD_COLOR"
},
"dpi":
{
"vendor_id": "epns200:Level2",
"vertical_dpi": 360,
"horizontal_dpi": 360
}
},
"version": "1.0"
}
并且这张票无效:
{
"print":
{
"color":
{
"type": "STANDARD_COLOR"
},
"margins":
{
"type": "STANDARD"
}
},
"version": "1.0"
}
看来边距有问题,但我看不出有什么问题。但是当我将它与 Google 文档 here 进行比较时,我没有发现任何问题。有什么想法吗?
原来issue #114解决了我的问题。基本上,我必须从
更改/usr/share/cloudprint-cups/printer.py
方法 _getCapabilities
return self._getCapabilitiesDict(attrArray,
self['capabilities']['printer'],
overridecapabilities)
到
# HACK HERE
#return self._getCapabilitiesDict(attrArray,
result = self._getCapabilitiesDict(attrArray,
self['capabilities']['printer'],
overridecapabilities)
result['print'].pop('margins', None)
#result['print']['duplex']['type'] = 'LONG_EDGE'
return result
对我来说关键是 removing/popping Google 打印票的边距,因为这是导致 Google 拒绝 Google 打印票的原因。无论出于何种原因,双工线路导致某些东西崩溃,这就是它被注释掉的原因。