From c1c5ce2091af28b34069e0cd2c122fa3019f42a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Katzer?= Date: Tue, 12 Feb 2019 17:32:42 +0100 Subject: [PATCH] Basic support for the browser platform --- README.md | 5 ++- plugin.xml | 12 +++++++ src/browser/PrinterProxy.js | 62 +++++++++++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 src/browser/PrinterProxy.js diff --git a/README.md b/README.md index 3c5e314..3abb4ab 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ Plugin for [Cordova][cordova] to print documents or photos from iOS, Android and - Android 4.4+ - iOS 10+ - Windows 10 UWP +- Browser ## Basics @@ -40,7 +41,7 @@ document.addEventListener('deviceready', function () { }, false); ``` -Print a screenshot of the web view: +Prints the contents of the web view: ```javascript cordova.plugins.printer.print(); @@ -70,6 +71,8 @@ Base64 encoded content: cordova.plugins.printer.print('base64://...'); ``` +__Note:__ On the browser platform the plugin only supports to print the contents of the web view. + ## Formatting It's possible to pass format options to the print method that overrides the defaults: diff --git a/plugin.xml b/plugin.xml index 06f4c43..5146917 100644 --- a/plugin.xml +++ b/plugin.xml @@ -124,4 +124,16 @@ + + + + + + + + + + + + diff --git a/src/browser/PrinterProxy.js b/src/browser/PrinterProxy.js new file mode 100644 index 0000000..19e6f3a --- /dev/null +++ b/src/browser/PrinterProxy.js @@ -0,0 +1,62 @@ +/* + Copyright 2013 Sebastián Katzer + + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + */ + +/** + * Verifies if printing is supported on the device. + * + * @param [ Function ] success Success callback function. + * @param [ Function ] error Error callback function. + * @param [ Array ] args Interface arguments. + * + * @return [ Void ] + */ +exports.check = function (success, fail, args) { + success(args.length === 0 && window.hasOwnProperty('print')); +}; + +/** + * List of printable document types. + * + * @param [ Function ] success Success callback function. + * @param [ Function ] error Error callback function. + * @param [ Array ] args Interface arguments. + * + * @return [ Void ] + */ +exports.types = function (success, fail, args) { + success([]); +}; + +/** + * Sends the content to the Printing Framework. + * + * @param [ Function ] success Success callback function. + * @param [ Function ] error Error callback function. + * @param [ Array ] args Interface arguments. + * + * @return [ Void ] + */ +exports.print = function (success, fail, args) { + window.print(); + success(); +}; + +cordova.commandProxy.add('Printer', exports);