📜  printthis (1)

📅  最后修改于: 2023-12-03 15:03:52.244000             🧑  作者: Mango

主题:printthis

介绍

printthis是一款轻量级的JavaScript库,用于将网页内容以打印格式打印。它支持自定义打印标题、自定义样式和打印前/后的回调函数。此外,printthis还支持在打印之前将选定的部分拷贝到剪贴板或保存为PDF。

安装

您可以从printthis的GitHub存储库下载最新的稳定版本。

https://github.com/jasonday/printThis/archive/master.zip

您还可以使用npm或bower安装printthis。

npm install printthis
bower install printthis
用法
基本用法

使用printThis()函数可以轻松地将指定的元素打印出来。

$('#your-element').printThis();
自定义选项

您可以使用以下选项自定义打印:

$('#your-element').printThis({
    debug: false,               // 是否启用调试模式
    importCSS: true,            // 是否导入页内CSS
    importStyle: false,         // 是否导入CSS样式表
    printContainer: true,       // 是否打印包含元素的区域
    loadCSS: "",                // 需要加载的CSS文件的URL
    pageTitle: "",              // 打印页标题
    removeInline: false,        // 是否移除内联样式
    printDelay: 333,            // 打印延迟
    header: null,               // 为打印页指定自定义头部
    footer: null,               // 为打印页指定自定义页脚
    base: false,                // 和所有相对链接的基本URL
    formValues: true,           // 是否包含表单值
    canvas: false,              // 是否打印canvas元素
    doctypeString: "...",       // 为打印页指定自定义DOCTYPE
    removeScripts: false,       // 是否移除脚本标记
    copyTagClasses: false       // 是否将原始元素的类复制到打印的元素上
});
回调函数

您可以使用以下回调函数在打印之前或之后执行操作:

$('#your-element').printThis({
    beforePrint: function () {
        console.log('打印之前...');
    },
    afterPrint: function () {
        console.log('打印之后...');
    }
});
拷贝到剪贴板

您可以使用以下选项将指定的元素复制到剪贴板。

$('#your-element').printThis({
    copyTagClasses: true, //打印的元素是否复制原始元素的类
    copyStyle: true, //打印的元素是否复制原始元素的样式
    canvas: true  //是否打印canvas元素
});
保存为PDF

使用jsPDF库和html2canvas库将指定的元素保存为PDF文件。

$('#your-element').printThis({
    canvas: true,   //是否打印canvas元素
    importCSS: false,
    importStyle: false,
    printContainer: false,
    loadCSS: "path/to/your/css/file.css"
}, function() {
    var pdf = new jsPDF('p', 'pt', 'letter');
    var canvas = pdf.canvas;
    canvas.height = 72 * 11;
    canvas.width = 72 * 8.5;
    canvas.style.height = 72 * 11 + 'px';
    canvas.style.width = 72 * 8.5 + 'px';
    canvas.getContext('2d');
    html2canvas(document.body, {
        canvas: canvas,
        onrendered: function (canvas) {
            var imgData = canvas.toDataURL();
            pdf.addImage(imgData, 'PNG', 0, 0, 612, 791);
            pdf.save('your-file-name.pdf');
        }
    });
});
结论

printthis是一款非常有用的JavaScript库,可轻松将网页内容打印为打印版面格式,并提供了自定义选项、回调函数和复制到剪贴板/保存为PDF等功能。它易于使用,并且具有许多自定义选项,非常适合在您的下一个Web项目中使用。