草庐IT

php - Google 云打印和功能 PPD

coder 2024-04-20 原文

我们通过 Google 的云打印服务在打印方面取得了一些成功。但是想知道在提交要打印的作业时是否有人知道有关功能参数的信息,以及有关如何创建和使用这种我认为是 ppd 的格式的一些指示。

我们已经能够通过使用方法 http://www.google.com/cloudprint/printer 获得打印机的功能。它返回我们打印机的所有值。问题是我们不太明白我们打算用它做什么来定义我们想要打印的功能选项。这将包括打印页面副本、纸张类型和打印质量的选项。我们可以接收到的能力信息的一个例子是这样的:

{
    "name": "copies",
    "displayName": "Copies",
    "type": "ParameterDef"
}

{
     "UIType": "PickOne",
     "name": "HPEconoMode",
     "displayName": "EconoMode",
     "type": "Feature",
     "options": [
      {
       "ppd:value": "\"\"",
       "default": true,
       "name": "PrinterDefault",
       "displayName": "Printer's Current Setting"
      },
      {
       "ppd:value": "\u003c\u003c/EconoMode true\u003e\u003e setpagedevice",
       "name": "True",
       "displayName": "Save Toner"
      },
      {
       "ppd:value": "\u003c\u003c/EconoMode false\u003e\u003e setpagedevice",
       "name": "False",
       "displayName": "Highest Quality"
      }
     ]
    }

最佳答案

GCP 文档在这方面严重缺乏。不管怎样,我发现发送打印机设置的正确参数是ticket,而不是 capabilities。参数的第一部分对应于打印对话框中的基本设置,它们是不言自明的,而且值很容易更改。 vendor_ticket_item 数组有点复杂。它包含由打印机功能描述的 id/value 对。 id 将包含功能中参数的名称,值将包含参数选项中记录之一的名称,或数值等,如功能中所述。

有关模式的详细信息,请查看我的 full solution .

{
"version":"1.0",
 "print":{
    "color":{"vendor_id":"psk:Color","type":0},
    "duplex":{"type":0},
    "page_orientation":{"type":1},
    "copies":{"copies":1},
    "dpi":{"horizontal_dpi":600,"vertical_dpi":600},
    "media_size":{"width_microns":148000,"height_microns":210000,"is_continuous_feed":false},
    "collate":{"collate":true}
    ,
    "vendor_ticket_item":[
        //Printer specific settings here, from the capabilities:
        {"id":"psk:JobInputBin","value":"ns0000:Tray3"},
        {"id":"psk:PageICMRenderingIntent","value":"psk:Photographs"},
        {"id":"psk:PageMediaType","value":"ns0000:Auto"},
        {"id":"psk:JobOutputBin","value":"ns0000:Auto"},
        //etc.
    ]
 }
}

关于php - Google 云打印和功能 PPD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17692706/

有关php - Google 云打印和功能 PPD的更多相关文章

  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-on-rails - Cucumber 是否只是 rspec 的包装器以帮助将测试组织成功能? - 2

    只是想确保我理解了事情。据我目前收集到的信息,Cucumber只是一个“包装器”,或者是一种通过将事物分类为功能和步骤来组织测试的好方法,其中实际的单元测试处于步骤阶段。它允许您根据事物的工作方式组织您的测试。对吗? 最佳答案 有点。它是一种组织测试的方式,但不仅如此。它的行为就像最初的Rails集成测试一样,但更易于使用。这里最大的好处是您的session在整个Scenario中保持透明。关于Cucumber的另一件事是您(应该)从使用您的代码的浏览器或客户端的角度进行测试。如果您愿意,您可以使用步骤来构建对象和设置状态,但通常您

  3. 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

  4. 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

  5. ruby-on-rails - rails 功能测试 - 2

    在Rails自动生成的功能测试(test/functional/products_controller_test.rb)中,我看到以下代码:classProductsControllerTest我的问题是:方法调用products()在哪里/如何定义?products(:one)到底是什么意思?看代码,大概意思是“创建一个产品”,但是它是如何工作的呢?注意我是Ruby/Rails的新手,如果这些是微不足道的问题,我深表歉意。 最佳答案 如果您查看test/fixtures文件夹,您会看到一个products.yml文件。这是在您创建

  6. ruby - Google-api-ruby-client 翻译 API 示例 - 2

    很高兴看到google代码:google-api-ruby-client项目,因为这对我来说意味着Ruby人员可以使用GoogleAPI-s来完善代码。虽然我现在很困惑,因为给出的唯一示例使用Buzz,并且根据我的实验,Google翻译(v2)api的行为必须与google-api-ruby-client中的Buzz完全不同。.我对“Explorer”演示示例很感兴趣——但据我所知,它并不是一个探索器。它所做的只是调用一个Buzz服务,然后浏览它已经知道的关于Buzz服务的事情。对我来说,Explorer应该让您“发现”所公开的服务和方法/功能,而不一定已经知道它们。我很想听听使用这个

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

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

  8. ruby-on-rails - 功能测试 Authlogic? - 2

    在我的一些Controller中,我有一个before_filter检查用户是否登录?用于CRUD操作。application.rbdeflogged_in?unlesscurrent_userredirect_toroot_pathendendprivatedefcurrent_user_sessionreturn@current_user_sessionifdefined?(@current_user_session)@current_user_session=UserSession.findenddefcurrent_userreturn@current_userifdefine

  9. Ruby-rspec - 如何打印出测试(组)名称 - 2

    如果我有一些测试,例如require_relative"Line"require_relative"LineParser"describeLinedoit"Canbecreated"doload"spec_helper.rb"@line.class.should==Lineendit"Canbeparsed"do...如何打印出测试组名称-在本例中为“Line”。我尝试添加:before:alldoputs"In#{self.class}"end但这给出了:InRSpec::Core::ExampleGroup::Nested_3,而不是Line 最佳答案

  10. Ruby—Open3.popen3/如何打印输出 - 2

    我有一个执行mysql的小ruby脚本导入方式:mysql-u-p-h,但利用Open3.popen3这样做。这就是我到目前为止所拥有的:mysqlimp="mysql-u#{mysqllocal['user']}"mysqlimp这实际上是在做工作,但有一件事困扰着我,与我希望看到的输出有关。如果我将第一行更改为:mysqlimp="mysql-v-u#{mysqllocal['user']}"#notethe-v然后整个脚本永远挂起。我猜,发生这种情况是因为读流和写流相互阻塞,我也猜想stdout需要定期冲洗,以便stdin将继续被消耗。也就是说,只要stdout的buffer已满

随机推荐