问题标签 [ipp-protocol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5495 浏览

python - 打印到远程 IPP/CUPS 服务器或打印机的最简单方法是什么(在 python 中)?

我有一个 postscript 文件,并希望将其打印在支持 IPP 的设备(或 CUPS 服务器)上。我可以摆脱的最少代码和依赖项是什么。

使用 LPR 或 libcups 给了我很多跨平台依赖。所以我的第一个方法是实现 IPP(cup 和许多现代打印机使用的协议)的最小子集,因为“它只是扩展的 HTTP”。但不幸的是,IPP 客户端的代码比几行代码多得多,到目前为止,我发现没有任何 IPP 客户端实现仅用于打印而不是管理打印服务器。

我更喜欢 Python 中的解决方案,但也会对其他动态语言中的某些内容感到满意。

0 投票
3 回答
24337 浏览

java - 在 Java 中打印到特定打印机(IPP URI)

Java中有什么方法可以打印到特定的IPP打印机吗?我发现的所有示例代码和教程都侧重于如何使用以下内容打印特定类型的文档:

此代码段仅打印到找到的第一台能够打印文档的打印机。就我而言,我想通过其 URI 查找打印机,但PrintServiceLookup似乎不支持这一点。我尝试使用PrintServiceAttributeSet, 而不是PrintRequestAttributeSet, 并添加一个PrinterURI属性,但这不会返回任何打印机。我怀疑查找服务正在寻找可以更改其目标 URI 的打印机,而不是寻找具有该 URI 的打印机。

作为最后的手段,我考虑只枚举由PrintServices 返回的所有 s lookupPrintServices,但 URI 不在任何属性中。打印机名称在那里,但我需要 URI。

对于背景,我的 webapp 需要根据当前用户将条形码打印到特定的打印机。每个用户都与一个打印机 URI 相关联,该 URI 指向 CUPS 服务器上的打印机。打印机 URI 是我拥有的唯一信息,我无法限制打印机名称以匹配 URI 或 URI 的子字符串。

编辑:澄清一下,我不需要渲染数据,我只需要将 blob 复制到给定的打印机。我无法弄清楚的部分是如何通过其 IPP URI 识别打印机。

0 投票
1 回答
590 浏览

python - 存储有关 CUPS 打印作业的元数据的选项?

我正在编写一个打印系统,它在 CUPS 之上放置了一个简化的界面。用户将作业放入一个队列中,系统以各种方式处理它们(统计信息、页面配额等),然后为用户提供一个 Web 界面以将作业分派到多台打印机之一。

由于可能有多个用户信息亭、一个管理站等,我需要将作业元数据存储在可以处理并发访问的东西中。(你能称数据结构为“可重入”吗?)我能想象的几个选项是

  • 一个 MySQL 数据库:非常过分,但肯定是稳定和受支持的
  • 元数据文件,手动处理并发访问:完全适合我的需求,但是我必须重新实现 MySQL 原子性的一个子集,而且可能做得很差
  • 使用提供的线程安全 cupsipp.h API 写入 CUPS 控制文件

最后一个选项听起来最有吸引力,但有一个问题:我是用 Python 编写的,pycups 和 pkipplib 似乎都没有办法修改控制文件。

编辑:我应该澄清 pkipplib 可以生成新的 IPP 请求,但没有提供任何修改现有控制文件的方法。也就是说,我必须通过将它们作为新工作提交来进行更新。

有人有更好的主意吗?建议将不胜感激。

0 投票
0 回答
502 浏览

packet - 从 IPP 数据包中提取打印作业有效负载的简单方法

是否有任何工具或任何快捷方式可用于从 IPP 数据包中提取打印作业负载(通过 wireshark 实用程序捕获)?

现在写,我正在手动检查/剖析每个字节的数据包字节,这有点令人痛苦,尤其是对于跨越多个数据包交换的请求(HTTP Continue)。

谢谢

0 投票
1 回答
1521 浏览

java - Java PrintService 是否忽略 PrinterUri 属性?

我正在使用以下代码将打印作业发送到特定打印机:

Strangley,我得到 9 个查找结果(=该特定主机上的所有可用打印机) - 而只有第一个结果是我正在寻找的结果。我在 PrintService JavaDocs 和网络上进行了搜索 - 但没有找到任何关于此事的信息。

PrintServiceLookup 不应该只返回与我的请求匹配的打印机吗?(在这种情况下 - 一台打印机)

提前致谢!

0 投票
1 回答
1457 浏览

java - 使用 JPS(java 打印服务)在特定打印机上打印文档

我想从特定打印机(标准单独程序)打印文档。

输入:IP 地址、打印机名称(使用 Jdk 1.6)

我已按照以下网址

在 Java 中打印到特定打印机(IPP URI)

但是我在jdk1.6中没有找到IppPrintService类。

你能帮我吗,如何使用jdk1.6实现这个?

0 投票
3 回答
10624 浏览

java - 如何使用带有 HTTP 的 ipp(Internet 打印协议)在 android 中打印文件?

我想从android应用程序打印文件。同样,在google上搜索后,我发现了一些有用的信息,我将不得不使用IPP(互联网打印协议)和HTTP。我是 ipp 的新手,但我使用过 HTTP。那么任何人都可以帮助我吗?谁能给我一些有用的信息或链接?提前致谢 ?

0 投票
0 回答
478 浏览

c - 在 IPP 打印机上使用 FindNextPrinterChangeNotification 失败

使用本机 C 应用程序中的FindNextPrinterChangeNotification函数,它在使用本地打印机时按预期工作。

即在打印时,该FindNextPrinterChangeNotification函数正确地返回正在打印到本地打印机的打印机作业的句柄。

但是,当打印到IPP 打印机(即通过 Internet 打印协议连接的打印机)时,FindNextPrinterChangeNotification函数调用失败并GetLastError()返回ERROR_INVALID_HANDLE.

其他人似乎也有同样的问题,到目前为止还没有解决方案。

所以我的问题是:

您是否了解如何/是否在 IPP 打印机上成功使用打印机作业通知(与手动轮询新作业相比)?

(我正在使用微软的 PrintMon 工具进行测试)

0 投票
1 回答
495 浏览

c - 将打印文档的真实用户获取到 IPP 打印机

目前,我正在尝试以编程方式将启动打印作业的用户的名称获取到映射的IPP 打印机

我正在为JOB_INFO_2结构的成员pUserName包含用于连接到 IPP 打印机的用户的名称而不是在本地启动打印作业的用户这一事实而苦苦挣扎。

为了显示:

在此处输入图像描述

看看两者,微软的 PrintMon 工具和打印机队列都显示相同:

在此处输入图像描述

在此处输入图像描述

尽管另一个用户启动了打印作业,但它们将“uwe_keim”显示为所有者用户。

这似乎来自用于对 IPP 打印机进行身份验证的用户的连接凭据:

在此处输入图像描述

我真的不知道如何/是否有机会让实际用户开始打印作业(对于在多用户终端环境中运行的应用程序,我需要这个)。

所以总结一下我的问题:

如何获取开始打印作业的用户的名称?(与拥有打印作业的用户名相反)

0 投票
2 回答
2865 浏览

javascript - 是否可以从浏览器发送 ipp 打印作业?

是否可以使用 ajax 从浏览器发送 IPP 打印请求?

我认为它看起来像这样:

唯一的问题是我得到:

有没有办法解决这个问题?或者这根本不可能?