js を使用してフロントエンド Web ページでプリンターを呼び出す

js を使用してフロントエンド Web ページでプリンターを呼び出す

私は最近、プリンター関連テクノロジーの使用を必要とする古いプロジェクトの変革に参加しました。
プリンタも比較的古いので、SDK 関連のアプリケーションはなく、デスクトップ プラグインはありますが、Web に統合する必要がありました。最終的に、ユニバーサル ドライバ lodop を見つけました。
プリンターが針式なので、以下の方法をまとめましたが、現時点ではこれで十分です。

インストール:

公式 Web サイトのホームページ http://www.lodop.net/download.html から配布パッケージをダウンロードし
、インストール後に起動し、以下のメソッドを呼び出すことで印刷を実現します。

メソッド関数

getLodop() は印刷コントロールを初期化します。

PRINT_INIT(name) 印刷を初期化します。名前: 印刷ドキュメント名。名前は印刷デバイス キューで確認できます。

GET_PRINTER_COUNT() プリンターの数を取得します。

GET_PRINTER_NAME(intPrinterIndex) シリアル番号を使用してプリンタ名を取得します。一般的なシリアル番号は 0 から始まり、-1 はデフォルトのプリンタを指します。SET_PRINTER_INDEX() はシリアル番号
または名前に従ってプリンタを指定し、その後手動での再選択は禁止されます。選択。一般的な設定は -1 で、デフォルトのプリンターの使用を指定するために使用されます。

SET_PRINT_STYLE(attr, value)基本的な印刷スタイルを設定します attr: FontSize、FontColorなど
属性attr: 属性、FontSize、FontColor などvalue: 属性値




SET_PRINT_PAGESIZE(intOrient,intPageWidth,intPageHeight,strPageName) 用紙サイズの設定
intOrient: 印刷方向と用紙の種類
1 - 縦方向印刷、固定用紙;
2 - 横方向印刷、固定用紙;
3 - 縦方向印刷、印刷内容に応じた固定幅、高さ高度な自己適応性
0 - 方向は固定されておらず、オペレータが選択するか、プリンタのデフォルト設定に従って選択できます。
intPageWidth:
用紙幅、単位は 0.1 mm。たとえば、パラメーター値は 45 で、これは 4.5 mm を意味し、測定精度は 0.1 mm です。
intPageHeight:
用紙が固定されている場合、このパラメータは用紙の高さです。高さが適応的である場合、このパラメータは用紙の下端の空白の高さであり、測定単位は用紙の幅と同じです。
strPageName:
用紙タイプ名。このパラメータは、intPageWidth が 0 に等しい場合にのみ有効です。特定の名前については、オペレーティング システムの印刷サービス プロパティの形式定義を参照してください。
キーワード「CreateCustomPage」は、システムに「LodopCustomPage」という名前のカスタム用紙タイプを作成します。

ADD_PRINT_TEXT(top, left, width, height, text) // 印刷テキストを追加します。
top: 用紙の上端からの距離
left: 用紙の左側からの距離
width: 現在のテキストの幅は次の場合に非表示になります。幅が文字の長さより小さい
高さ: 現在のテキスト 高さの高さが文字の高さより小さい場合、テキストには影響しません
: テキスト文字列

ADD_PRINT_TABLE(top, left, width, height, tableDom) テーブルを印刷します。HTML で描画されたテーブルを印刷できます。
top: 用紙の上端からの距離
left: 用紙の左側からの距離
width: 現在のテキストの幅は、高さのパーセンテージを使用します
: 現在のテキスト 高さにはパーセンテージを使用することをお勧めします
tableDom: テーブルの dom 要素

ADD_PRINT_HTM(top, left, width, height, dom); CSS で描画した楕円ではなく、HTML 要素を印刷します top:
用紙の上端からの距離
left: 用紙の左側からの距離
width: 用紙の幅現在の要素の
高さ: 現在の要素の高さ height
dom: dom 要素

NewPage() 継続に適した新しいページを追加します。

PREVIEW() 印刷プレビュー

PRINT() は直接印刷します

PRINT_DESIGN() はデザインを印刷します。テンプレートをデザインして、直接使用するコードを生成できます。

function templatePrint() {
    
    
    // 初始化打印机
    let LODOP = getLodop();
    // 初始化打印名称
    LODOP.PRINT_INIT('测试打印')
    LODOP.SET_PRINTER_INDEX(-1)  // 设置使用的打印机,-1表示使用默认打印机
    LODOP.SET_PRINT_STYLE('FontSize', 24);  // 设置基本样式,字体大小24
    LODOP.SET_PRINT_PAGESIZE(1, 2100, 2970, 'CreateCustomPage') // 设置打印方向和纸张大小
    // LODOP.SET_PRINT_PAGESIZE(1, 0, 0, 'A4') // 直接设置A4纸规格
    LODOP.ADD_PRINT_TEXT(100, 100, 500, 20, '测试文本1');  // 添加打印文字
    LODOP.ADD_PRINT_TEXT(200, 100, 500, 20, '测试文本2');  // 添加打印文字
    LODOP.SET_PRINT_STYLEA(2, 'FontSize', 24); // 指定第二条的字体样式
    LODOP.NewPage()  // 添加一页,续打
    LODOP.ADD_PRINT_TABLE(0, 0, "100%", '100%', dom);  // 打印表格
    LODOP.NewPage() // 添加一页,续打
    LODOP.ADD_PRINT_HTM(0, 0, 500, 100, dom);  // 打印HTML内容
    LODOP.PREVIEW()  // 打印预览
    // LODOP.PRINT()  // 直接打印
    // LODOP.PRINT_DESIGN()  // 打印设计
}

おすすめ

転載: blog.csdn.net/m0_46496355/article/details/127102104