jjzjj

php - 在网络打印机上无人值守打印文档

coder 2024-04-16 原文

我们正在尝试以自动方式将主文档(在自动邮件合并之后)发送到我们的一台网络打印机,该打印机同时分配了网络名称和内部 IP。

但这是真正棘手的部分。当我们从工作站打印文档时,我们确实会收到“工作会计”对话框的提示,要求我们在打印文档之前输入文档的项目代码,这样财务部门就可以做所有他们喜欢的会计和计费工作。

那么,我们如何以编程方式将文档 (docx) 与Job Accounting 参数 一起发送到网络打印机?

我不确定在打印作业时会计数据有多常见,因为这是我见过的第一份作业。

以下是重要的细节:

  • PHP 5(首选)
  • Windows Server(我相信是 2003)
  • Kyocera KM-4050 打印机(带静态 IP)
  • 一些使用 C++ 和 Visual Basic 的经验

我们已经进行了一些研究,但尚未在野外发现太多可行的解决方案,经过一些讨论后,我们并不完全确定从哪里开始。不幸的是,似乎没有任何类型的 API 是我们可以插入的。

----- 解决方案 -----

我的团队已决定实现调用可执行文件的代码以将每个文档转换为 PCL,然后获取生成的 PCL 并在其前面加上

@PJL SET KJOBMANAGERCODE="[project code here]"

然后我们将获取生成的文件并将其写入打印机假脱机,打印机将在那里处理它并开始每个作业。

谢谢大家的帮助。每个答案都对我们实现计划的某个部分产生了很大的启发。

最佳答案

我会做的是:

  • 创建一个 C++/VB 脚本,它将完成艰苦的工作(抱歉,我没有帮助)
    • 让它查看工作目录/接受 CLI 参数
  • 使服务器 PHP 将文件连同一些信息保存到某个目录中
    • 说保存一个 1.txt(这个数字是你的内部计数器并且需要是唯一的并且每个新的都必须比之前的大)文件到/path/infos 里面有这样的东西:1 c:\temp\文件打印.docx
  • VB 脚本将查看该目录并读取第一个文件(编号最小的文件)
    • 并看到它用于 Job Accounting ID = 1
    • 要打印的文件在 c:\temp\filetoprint.docx 中
    • 并打印它:)
    • 删除文件(!重要)

现在一切都取决于您的 VB/C++ 编程技能 :) 顺便说一句:另一个选项不是将文件保存到目录,您可以对 VBScript/C++ 使用 exec() 和 CLI 参数。但基于文件的解决方案更健壮,因为它是一种自然队列,而且它还能抵抗打印程序故障——作业仅在完成时才被删除。如果打印作业失败,它将在下次尝试。可以使用数据库来类比文件,但我不确定从 VB/C++ 连接到 DB 有多容易,所以文件系统是最好的后备 ;)

PHP 部分只有一个指向脚本的链接,该脚本会将 JA ID 和文件名保存到/path/infos/中的文件

这是一种变通解决方案,但我认为不值得在纯 PHP(使用 PHP 扩展)中执行此操作。

关于php - 在网络打印机上无人值守打印文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8040840/

有关php - 在网络打印机上无人值守打印文档的更多相关文章

  1. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  2. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  3. Matlab imread()读到了什么 (浅显 当复习文档了) - 2

    matlab打开matlab,用最简单的imread方法读取一个图像clcclearimg_h=imread('hua.jpg');返回一个数组(矩阵),往往是a*b*cunit8类型解释一下这个三维数组的意思,行数、数和层数,unit8:指数据类型,无符号八位整形,可理解为0~2^8的数三个层数分别代表RGB三个通道图像rgb最常用的是24-位实现方法,即RGB每个通道有256色阶(2^8)。基于这样的24-位RGB模型的色彩空间可以表现256×256×256≈1670万色当imshow传入了一个二维数组,它将以灰度方式绘制;可以把图像拆分为rgb三层,可以以灰度的方式观察它figure(1

  4. 网络编程套接字 - 2

    网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识

  5. ruby - 如何打印 ruby​​ 对象的实例变量 - 2

    classPacketdefinitialize(name,age,number,array)@name=name@age=age@number=number@neighbors=arrayendendp1=Packet.new("n1",5,2,[1,2,3,4])putsp1.name我有上面的代码,但是每当我执行puts语句时,我都会收到nameisnotamethod的错误。我不知道任何其他方式来打印p1的名称。如何打印姓名? 最佳答案 这里的问题是,虽然您拥有实例变量,但您并未使它们可访问。attr_reader:vari

  6. ruby - 如何打印出 Mechanized 存储的 cookie? - 2

    我正在使用mechanize登录网站,然后检索页面。我遇到了一些问题,我怀疑这是由于cookie中的某些值造成的。当Mechanize登录网站时,我假设它存储了cookie。如何通过Mechanize打印出存储在cookie中的所有数据? 最佳答案 代理有一个cookie方法。agent=Mechanize.newpage=agent.get("http://www.google.com/")agent.cookiesagent.cookies.to_scookie返回一个Mechanize::Cookiesobject

  7. Ruby 等同于 Sphinx 文档生成器? - 2

    Ruby有一些不错的文档生成器,例如Yard、rDoc,甚至Glyph。问题是Sphinx可以做网站、PDF、epub、LaTex等。它在重组文本中完成所有这些事情。在Ruby世界中有替​​代方案吗?也许是程序的组合?如果我也能使用Markdown就更好了。 最佳答案 自1.0版以来,Sphinx有了“域”的概念,它是从Python和/或C以外的语言标记代码实体(如方法调用、对象、函数等)的方法。有一个rubydomain,所以你可以只使用Sphinx本身。您唯一会缺少的(我认为)是Sphinx使用autodoc从源代码自动创建文档

  8. ruby - 检查网络文件是否存在,而不下载它? - 2

    是否可以在不实际下载文件的情况下检查文件是否存在?我有这么大的(~40mb)文件,例如:http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm这与ruby​​不严格相关,但如果发件人可以设置内容长度就好了。RestClient.get"http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm",headers:{"Content-Length"=>100} 最佳答案

  9. ruby - 如何以表格格式快速打印 Ruby 哈希值? - 2

    有没有办法快速将表格格式的ruby​​哈希打印到文件中?如:keyAkeyBkeyC...1232343451253474456...其中散列的值是不同大小的数组。还是使用双循环是唯一的方法?谢谢 最佳答案 试试我写的这个gem(在表中打印散列、ruby对象、ActiveRecord对象):http://github.com/arches/table_print 关于ruby-如何以表格格式快速打印Ruby哈希值?,我们在StackOverflow上找到一个类似的问题:

  10. ruby - 404 未找到,但可以从网络浏览器正常访问 - 2

    我在这方面尝试了很多URL,在我遇到这个特定的之前,它们似乎都很好:require'rubygems'require'nokogiri'require'open-uri'doc=Nokogiri::HTML(open("http://www.moxyst.com/fashion/men-clothing/underwear.html"))putsdoc这是结果:/Users/macbookair/.rvm/rubies/ruby-2.0.0-p481/lib/ruby/2.0.0/open-uri.rb:353:in`open_http':404NotFound(OpenURI::HT

随机推荐