React Hook 示例
import { useCallback, useState } from 'react';
import webPrintPdf from 'web-print-pdf';
export function useSilentPrint() {
const [loading, setLoading] = useState(false);
const printHtml = useCallback(async (html) => {
setLoading(true);
try {
return await webPrintPdf.printHtml(
html,
{ paperFormat: 'A4', printBackground: true },
{ paperFormat: 'A4', printerName: '默认打印机' }
);
} finally {
setLoading(false);
}
}, []);
return { loading, printHtml };
}
在组件中使用
import { useSilentPrint } from './useSilentPrint';
export function OrderPrintButton({ html }) {
const { loading, printHtml } = useSilentPrint();
return (
<button disabled={loading} onClick={() => printHtml(html)}>
{loading ? '打印中…' : '静默打印'}
</button>
);
}
相关专题:
Vue 静默打印 ·
window.print 替代 ·
Linux 部署 ·
在线样例