@oliverphaser/nativescript-printer
将图片、PDF或屏幕内容发送到物理打印机。从EddyVerbruggen分叉,并针对NativeScript 8进行更新,修复了Android上多页打印的问题。
npm i --save @oliverphaser/nativescript-printer
- 版本:1.0.3
- GitHub: https://github.com/oliverphaser/nativescript-printer
- NPM: https://npmjs.net.cn/package/%40oliverphaser%2Fnativescript-printer
- 下载量
- 昨日: 0
- 上周: 7
- 上月: 18
在打印前请考虑环境问题!
NativeScript 打印插件
一个用于将图片、PDF或屏幕内容发送到物理打印机的NativeScript模块。
NativeScript 8
这只能在NativeScript 8上工作。
安装
从命令提示符进入您的应用程序根目录并执行
ns plugin add @oliverphaser/nativescript-printer
演示应用程序
想快速上手?查看演示!否则,继续阅读。
从项目的根目录运行演示应用程序:npm run demo.ios
或npm run demo.android
。
Android 截图
iOS 截图
API
isSupported
并非所有设备都支持打印,因此事先检查设备功能是合理的。
TypeScript
// require the plugin
import { Printer } from "@oliverphaser/nativescript-printer";
// instantiate the plugin
let printer = new Printer();
printer.isSupported().then((supported) => {
alert(supported ? "Yep!" : "Nope :'(");
}, (error) => {
alert("Error: " + error);
});
printImage
TypeScript
// let's load an image that we can print. In this case from a local folder.
let fs = require("file-system");
let appPath = fs.knownFolders.currentApp().path;
let imgPath = appPath + "/res/printer.png";
let imgSrc = new ImageSource();
imgSrc.loadFromFile(imgPath);
printer.printImage({
imageSrc: imgSrc
}).then((success) => {
alert(success ? "Printed!" : "Not printed");
}, (error) => {
alert("Error: " + error);
});
printPDF
TypeScript
import { knownFolders } from "@nativescript/core";
printer.printPDF({
pdfPath: knownFolders.currentApp().path + "/pdf-test.pdf"
}).then((success) => {
alert(success ? "Printed!" : "Not printed");
}, (error) => {
alert("Error: " + error);
});
printScreen
打印当前屏幕内容。屏幕之外的内容将不会打印。
TypeScript
printer.printScreen().then((success) => {
alert(success ? "Printed!" : "Not printed");
}, (error) => {
alert("Error: " + error);
});
您还可以打印屏幕的特定部分,这还使您能够打印比视口更大的视图。这是一个非Angular NativeScript应用程序的示例
注意 如果视图是以下之一,则根据其内容的尺寸可能会分成多个页面。
标签 | 文本视图 | Html视图 | 网页视图
<StackLayout id="printMe">
<Label text="Print me :)" />
</StackLayout>
<Button text="Print" tap="{{ print }}" />
public print(args) {
printer.printScreen({
view: args.object.page.getViewById("printMe")
});
}