npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

snk-browser-helper-print

v0.1.3

Published

> 打印助手: > 浏览器用PDF.JS展示PDF,当直接打印时,针式打印机清晰度不足,需要插件进行辅助,此为浏览器与插件进行交互的前端项目 > 方案是通过打印助手打印word文档,针式打印机打印PDF都不理想

Downloads

2

Readme

snk-browser-helper-web

打印助手: 浏览器用PDF.JS展示PDF,当直接打印时,针式打印机清晰度不足,需要插件进行辅助,此为浏览器与插件进行交互的前端项目 方案是通过打印助手打印word文档,针式打印机打印PDF都不理想

相关文件

// 功能入口文件
src/browserHelper/index.js

// 共用流程主文件
src/browserHelper/dialog.js

// 提示文件 其中包含安装引导提示
src/browserHelper/message.js


// 打印主文件 其中包含安装引导提示
src/browserHelper/ajax-printer.js

建立http链接 以及 唤起java打印助手应用

通过轮询握手的机制去检测唤起本地应用,并展示相关安装指引

采用的是 https 建立和本地webservice

1.1 用户没有安装助手应用

第一次创建http连接,失败,第二次创建http连接,并且通过URL protocol尝试唤起助手。因为没有安装助手,所以直到最大的轮询次数也不会成功,所以弹出页面提示让用户下载助手应用进行安装并重试

1.2 用户已经安装助手应用 但是助手没有运行

第一次创建http连接,失败,第二次创建http连接,并且通过URL protocol尝试唤起助手。第一种情况助手在若干秒被唤起,后续并成功建立连接,则不再进行尝试http连接,正常进入逻辑。第二种情况助手没有被正常唤起,可能原因如下:

  • 1.安装的时候写入URL protocol 注册表失败
  • 2.IE浏览器安全机制限制

在第二种情况没有被唤醒,则也会在web界面弹出UI提示,提示如果用户有安装助手插件,让用户手动点击运行,并重试。在用户安装过程中如果被杀毒软件阻止了,需要允许相关操作。不然会导致URL protocol注册表写入失败。

1.3 用户已经安装助手应用 但是助手正在运行

一般在第一次创建http连接就会成功,这就是为什么第二次尝试才去唤起app的原因,这样可以提升用户体验,第一次建立成功,就不再去唤起app 也不会在web显示浏览器的是否打开URL protocol的提示。

1.4 唤起JAVA插件

在助手安装过成中 会写入URL protocol, 代码通过

`haprinthandler://?port=${port}&action=${action}&env=${env}&wss=${wss === 'true'?'true':'false'}`;

haprinthandler就是约定的URL protocol名称

1.5 成功后实例化具体业务

当建立好了http便根据调用参数,去实例化上传助手。

1.6 文件 message.js

这个文件主要用于安装指引提示,公用部分的错误指引提示。也包括了一些文件下载链接,修复文件的下载链接。

  • this.dowloadURL

助手的下载链接

  • this.VCPlusPlusURL

C#执行环境还会依赖vc++ vc_redist.x86 2015以上的版本,如果报相关错,则会提示用户下载修复。

相关文件

// 功能入口文件
src/browserHelper/index.js

// 共用流程主文件
src/browserHelper/dialog.js

## 上传助手

打包发布

1、script 引入

npm run build

会在dist目录下生成一个snkwebbrowserhelper.js 文件,相关项目引入该文件即可

2、import 引入

npm run buildlib npm publish npm install snk-browser-helper-print ===》 import

调用

 // 调用
 import SNKBrowserHelper from 'SNKBrowserHelper';
SNKBrowserHelper.callAjaxPrint({
      env: 'pro', // 此参数暂时未启用
      wss: 'false',
      // 下载插件的域名地址 hostUrl + '/x86/printHandler.exe' 或 hostUrl + '/x64/printHandler.exe'
      hostUrl: `${Common.host}/res/api/anysign-web/print/exe/`,
      initParams: { urlData: newData, index: Common.curentFileIndex }, // 初始化打印的word文档链接
      ok: ({ result }) => {
        console.log(result);
      },
});

项目结构

BROWSER-HELPER-WEB
|   package.json
|   readme.MD
|   server.js                               项目启动脚本,包含一些取未占用端口逻辑,并启动webpack-dev-server
|   webpack.config.js                       webpack配置文件
|   
+---dist                                    打包文件
|       browserHelper.html
|       browserHelper.js
|       snkwebbrowserhelper.js              需要被引入项目的代码
|       
\---src
    |   
    +---browserHelper
    |   |   commonLayout.js                 公用界面
    |   |   index.js                        声明了调用方法的入口文件
    |   |   index.less
    |   |   message.js                      安装指引提示,安装错误提示
    |   |   protocolcheck.js                通过URL protocol唤起app的兼容性类
    |   |   
    |           
    +---components
    |   +---dom
    |   |       index.js                    基础的dom操作
    |   |       
    |   +---popview                         弹出框
    |   |       confirm.js
    |   |       index.js
    |   |       index.less
    |   |       
    |   +---slide                           图片预览滑动组件
    |   |   |   index.js
    |   |   |   index.less
    |   |   |   util.js
    |   |   |   
    |   |   +---item
    |   |   |       imageItem.js
    |   |   |       index.js
    |   |   |       notSupportItem.js
    |   |   |       pdfItem.js
    |   |   |       videoItem.js
    |   |   |       
    |   |   \---thumbBar
    |   |           index.js
    |   |           thumbItem.js
    |   |           
    |   \---tree                            左侧树状组件
    |       |   index.js
    |       |   index.less
    |       |   popTree.js
    |       |   tree.js
    |       |   
    |       \---components
    |           |   treeItem.js
    |           |   treeSection.js
    |           |   
    |           \---popover
    |                   index.js
    |                   index.less
    |                   
    \---entry                               当前项目的启动入口 
        \---browserHelper
                index.html
                index.js
                index.less