在 Web 应用程序中将页面打印到不同的打印机

2024-02-14

我想编写一个网络应用程序,可以处理用户演示文稿,该演示文稿在提交后会发送到本地系统打印机 - 订单的一部分将发送到黑白激光打印机,另一部分将发送到另一台打印机进行另一个处理。

理想情况下,它能够在任何主要系统上运行 - Linux、OSX 或 Windows。

它可能是打包的 Chrome 或 Firefox 应用程序或扩展程序,但我无法判断是否有足够的权限访问系统打印机。 (我可以看到当前 chrome 安装可用的所有打印机 - 但它们可用于扩展吗?)。我在任何演示或库中都看不到代码。

我已经看到了对 NPAPI 的引用,但我也无法判断这是否是我所需要的 - 如果是这样,我是否需要为每个主要平台或每种打印机编写一个应用程序?


In Firefox可以从扩展程序进行打印。也就是说,仅使用 javascript(如果您愿意,您可以自由地使用 C++)。 扩展程序本质上就是浏览器:浏览器可以做的所有事情,扩展程序也可以。

然而,关于使用打印机的文档并不多。准确地说,据我所知,没有。不过,该浏览器是开源的,并且 UI 大部分是 Javascript,因此您只需阅读代码即可。

printUtils.js http://mxr.mozilla.org/mozilla-central/source/toolkit/components/printing/content/printUtils.js#33将是一个很好的起点来检查它是如何工作的。还有一个组件实现nsIPrinterEnumerator http://mxr.mozilla.org/mozilla-central/source/widget/nsIPrintOptions.idl#64。请参阅火狐插件 /questions/tagged/firefox-addon信息部分提供了有关一般附加组件开发的“入门”和文档资源的集合。

我不认为Chrome 扩展API http://developer.chrome.com/extensions/api_index.html提供按照您需要的方式控制打印的方法。

The NPAPI插件 API 没有提供足够的打印控制。您基本上只是获得一个缓冲区来绘制,但无法控制打印设置或自己启动打印。当然,您可以作弊,让您的插件绕过浏览器直接通过操作系统打印一些内容,例如PDF 阅读器确实如此。然而,应该注意的是,NPAPI 插件已经成为过去……如果可能的话,不要开发新的插件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Web 应用程序中将页面打印到不同的打印机 的相关文章

  • Cordova/Phonegap 通过 JavaScript 在应用程序浏览器中打印

    我想从我正在开发的 iPad 应用程序打印一页 或某些页面 应用程序启动时所做的第一件事是通过以下代码加载外部网站 window location https 我现在想从这个外部网站打印一些东西 在 iPad 上的 Safari 中效果很好
  • 强制加载 WPF 视觉对象的适当方法

    我一直在努力使用打印System Printing http msdn microsoft com en us library system printing aspx命名空间 我终于发现 在使用部分 API 时得到空白结果的原因是Visu
  • 如何访问 Chrome 的拼写检查词典?

    显然 Chrome 有一个内置字典 用于拼写检查 有 API 或某种方式来访问这本字典吗 我感兴趣的不是检查拼写 而是实际访问字典 例如 我想写Chrome 的词典自动完成扩展 https stackoverflow com questio
  • 使用 Zebra 打印机打印时图像模糊且模糊

    我编写了一个库 它根据一些用户输入创建位图图像 然后使用斑马打印机打印该位图 我遇到的问题是斑马打印机打印的图像上的所有内容都非常微弱和模糊 但如果我将位图打印到激光打印机 它看起来完全正常 有人以前遇到过这个问题吗 如果是的话 他们是如何
  • 从扩展后台或弹出窗口发送消息到内容脚本不起作用

    我知道这个问题已经以不同的方式被反复问过 但我尝试过一遍所有的答案 希望我没有错过任何人 但没有一个对我有用 这是我的扩展程序的代码 显现 name test version 1 1 background scripts contextMe
  • 如何使用 WiFi Direct 打印文本文件

    我有一个正在运行的 Android 应用程序 可以显示用户统计信息 我想将纯文本格式 txt 的小报告发送到 WiFi Direct 打印机 我已经下载了示例demo https developer android com guide to
  • 在 Chrome 扩展中创建隐藏的 iframe

    是否可以在 google chrome 扩展中的 background html 页面上创建一个 iframe 并让它向网站发出请求 我不确定该扩展程序到底是如何工作的 chrome 会自动忽略所有显示标签还是会以不可见的方式运行它 它会正
  • 使 Chrome 扩展弹出窗口透明

    我正在写一个 chrome 扩展 我想知道是否有办法使弹出窗口透明 即即使弹出窗口覆盖当前页面 用户也可以看到当前页面的内容 谢谢你 昨天我想到了一个有趣的想法 虽然你不能删除白色背景 但你仍然可以mimic透明背景 这可以通过在打开弹出窗
  • 在 Firefox Add-on SDK 扩展中的“onInstalled”上执行脚本

    我对 Mozilla 扩展开发非常陌生 即使我刚刚知道扩展和附加开发是不同的 我对我在 MDN Mozilla 开发者网络 上看到的内容非常困惑 我想在安装我的附加组件后立即执行脚本 content script js 以便用户不需要重新启
  • 从 Android 打印,无需系统对话框

    我想从我的 Android 应用程序打印图像 打印机 canon selphy cp910 带 wifi direct 我尝试使用 Google API 和 android support v4 print PrintHelper 类 它有
  • 如何更改 Firefox 插件上的脚本位置?

    制作 Firefox 插件的最简单方法是什么 它重复了这个 chrome 功能 chrome webRequest onBeforeRequest addListener function info if info url indexOf
  • Chrome 扩展程序可以相互通信吗?

    我正在编写一个Chrome扩展程序 并且想要实现一个接口或api 以便我将来制作的其他扩展程序可以使用它 最终的效果可能如下 分机 B 呼叫extensionA someMethod someParameters 并向分机A发送一些数据 分
  • 使用 Firefox 插件 sdk 的 nsISocketTransportService

    我正在尝试使用 Firefox 来读取 SSH 横幅 IE 当您最初连接到 SSH 服务器时 服务器会向您发送其横幅 标识服务器软件 并且您向 SSH 服务器发送您的横幅 标识您的客户端软件 为此 我使用以下 URL 中的示例 firefo
  • 需要在python中找到print或printf的源代码[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在做一些我不能完全谈论的事情 我
  • DOM 解析器 Chrome 扩展内存泄漏

    问题 我开发了一个扩展程序 可以拦截 Web 请求 获取 Web 请求来源的 HTML 并对其进行处理 我使用 DOMParser 来解析 HTML 并且意识到 DOMParser 正在导致大量内存泄漏问题 最终导致 chrome 扩展崩溃
  • 请解释与 Google Chrome 扩展程序的后台通信

    我已经阅读并重新阅读了此页面 并运行了示例 http code google com chrome extensions background pages html http code google com chrome extension
  • Python 3 print() 到变量

    在Python 3中 您可以使用 print 函数将数据写入文件 例如print my data file my open file 这很好 而且非常酷 但你可以吗print到 字符串 变量 如果是这样 怎么办 在我的特定用例中 我试图避免
  • Chrome 扩展 - 消息传递到批处理文件

    我使用了示例项目https developer chrome com extensions samples https developer chrome com extensions samples我能够运行 python 本机应用程序 有
  • 从 firefox 扩展获取 firefox 选项卡的 url

    在 Firefox 扩展中 如何枚举当前窗口的选项卡并检索它们的 URL 有一个代码片段位于MDC https developer mozilla org en US docs Archive Add ons Tabbed browser
  • 使用不同的背景颜色保存 MATLAB 图窗

    我想打印一个带有深色背景和白色标签的 MATLAB 图 如果我使用print or saveas命令我不知何故失去了颜色 绘图符号再次变暗 背景变为白色 points rand 100 3 plot3 points 1 points 2 p

随机推荐

  • C 中的冲突类型

    我试图用 C 语言构建一个非常简单的程序 该程序从函数返回浮点值 但由于某种原因我收到了错误 include
  • 一般来说,在 ExtJS 应用程序上转义 HTML 的最佳方法是什么?

    我正在使用 ExtJS 开发一个 Web 应用程序来构建 GUI 并通过 RESTful Web 服务与服务器通信 返回的数据格式化为 JSON 对象 现在我在处理包含 HTML 标签 Javascript 代码的数据时遇到问题 因为当我将
  • 使用 ffmpeg 在音频文件中的单词之间添加静音

    我想做的是concat wav包含短音频的文件 我能够concat它们放入一个文件中 但我试图在特定时间设置每个文件 目前 我可以concat这些文件 但我无法将每个文件放置在需要的特定时间 我想也许我可以在他们之间添加适当的沉默 这样就可
  • 在多个存储库上重用 Github Actions 自托管运行器

    我有一个自托管的 Github Actions 运行器在我的服务器上运行 用于我的 1 个存储库 但现在我想将同一个运行程序用于另一个存储库 有没有一种方法可以让我将同一个 Github Actions 运行器重复用于其他存储库 而无需创建
  • 有没有办法在 Ruby 中全局目录但排除某些目录?

    我想全局一个目录来后处理头文件 但我想排除项目中的一些目录 现在默认的方式是 Dir h each header puts header 如果每个标头条目位于排除目录中 则手动检查它似乎效率低下 我知道这已经晚了 4 年 但对于可能遇到这个
  • 多租户:使用 Spring Data JPA 管理多个数据源

    我需要创建一个可以管理多个数据源的服务 当应用程序首次运行应用程序时 这些数据源不一定存在 实际上端点将创建新的数据库 我希望能够切换到它们并创建数据 例如 假设我有 3 个数据库 A B 和 C 然后我启动应用程序 我使用创建 D 的端点
  • Electron 应用程序:无法加载预加载脚本

    每次我启动电子应用程序时都会遇到此错误 electron js2c renderer init js 91 Unable to load preload script C Users Desktop Projects Electron Ap
  • ng-repeat过滤器空值不显示

    为什么当我应用时角度不会显示为空的值 ng repeat p in foo filter filter2 其中过滤器2是 scope filter2 function p if p state null return p state els
  • 使用 Moq 对工作单元和通用存储库模式框架进行单元测试

    我正在对一个服务进行单元测试 该服务使用工作单元和通用存储库 并使用起订量 问题是 当我在调试模式下运行测试时 在服务类中 subsiteRepository 始终为 null 我正在嘲笑的服务类的设置 private readonly I
  • 我应该如何在msbuild脚本中引用sn.exe?

    我需要在构建完成后重新签署我的程序集 并且我已经对其做了一些其他事情 所以我开始添加一个
  • 在单个 SQL 查询中,查询可以使用单个表中的多少个索引?

    在 Oracle 中 如果您有一个表 在 3 个不同的列上有 3 个索引 单个 SQL 语句可以从一个表中使用多少个索引 可能这三个都可以使用 Oracle 不太可能使用所有这三个 或者使用所有这三个将是有益的 但这是可能的 Oracle
  • Javascript insideHTML 没有更新

    您好 我正在尝试更新以下脚本的innerHTML div class layout wrapper div class alert success animate in Your submission was successful div
  • Directx 11,将多个纹理发送到着色器

    使用此代码我可以将一个纹理发送到着色器 devcon gt PSSetShaderResources 0 1 pTexture 当然 我通过以下方式制作了 pTexture D3DX11CreateShaderResourceViewFro
  • 迭代 NSSet - SwiftUI 2.0

    我开始查看 CoreData 并有两个实体 这些在 Player 之间形成多对多关系 和团队 我试图在列表中使用 ForEach 来迭代团队的球员 但我似乎无法让它工作 我一直在尝试的代码如下 我尝试的任何其他解决方案都会收到错误 例如 N
  • 在远程仓库上删除本地 Git 分支后删除它们

    我希望本地和远程存储库在分支方面始终保持同步 在 GitHub 上进行拉取请求审查后 我合并并删除了那里的分支 远程 我如何在本地存储库中获取此信息并让 Git 也删除我的本地版本的分支 快速的方法 git branch merged gr
  • 从另一个类文件访问 MainForm

    我有这个 MainForm 类 namespace homework 001 public partial class MainForm Form public MainForm InitializeComponent public str
  • 在组中创建带有条件的 random.randint?

    我有一个专栏叫做 cars并想创建另一个名为persons using random randint 我有 dat persons np random randint 1 5 len dat 这样我就可以输入使用这些的人数 但我会 想知道如
  • 如何拆分一个巨大的rdd并轮流广播?

    描述 我们的spark版本是1 4 1 我们想要连接两个巨大的 RDD 其中之一带有倾斜数据 所以spark rdd操作join可能会导致内存问题 我们尝试将较小的一个分割成多个片段 然后分批广播它们 在每个广播回合中 我们尝试将较小的rd
  • Visual Basic 6 中的折叠/折叠函数和子例程

    您知道在 Visual Basic 6 IDE 中是否有一种方法可以折叠 折叠函数和子例程 更好的是 ifs 和 whiles 至少有一个插件或类似的东西 有时我必须处理数千行的文件 如果不进行裁剪 这是不可能的 当然这是一个非常古老的应用
  • 在 Web 应用程序中将页面打印到不同的打印机

    我想编写一个网络应用程序 可以处理用户演示文稿 该演示文稿在提交后会发送到本地系统打印机 订单的一部分将发送到黑白激光打印机 另一部分将发送到另一台打印机进行另一个处理 理想情况下 它能够在任何主要系统上运行 Linux OSX 或 Win