【发布时间】:2021-09-07 13:53:03
【问题描述】:
[demo][1]
[1]: https://codesandbox.io/s/react-to-print-rzdhd
我正在使用 react-to-print 库从 html 生成 pdf。但问题是当我尝试 在我的手机(小屏幕尺寸)中生成 pdf,但它对我不起作用,但它适用于 桌面(大屏幕尺寸)视图。
【问题讨论】:
标签: html css reactjs antd react-to-print
[demo][1]
[1]: https://codesandbox.io/s/react-to-print-rzdhd
我正在使用 react-to-print 库从 html 生成 pdf。但问题是当我尝试 在我的手机(小屏幕尺寸)中生成 pdf,但它对我不起作用,但它适用于 桌面(大屏幕尺寸)视图。
【问题讨论】:
标签: html css reactjs antd react-to-print
此包使用window.print(),它不适用于移动设备。您可以使用以下解决方法:
class Example extends React.Component {
printPDF(e) {
return new Promise((resolve: any) => {
e.preventDefault()
var ua = navigator.userAgent.toLowerCase()
var isAndroid = ua.indexOf('android') > -1 //&& ua.indexOf("mobile");
if (isAndroid) {
// https://developers.google.com/cloud-print/docs/gadget
var gadget = new cloudprint.Gadget()
gadget.openPrintDialog()
} else {
window.print()
}
resolve(true)
})
}
render() {
return (
<div>
<ReactToPrint
trigger={() => <button>Print this out!</button>}
print={e => this.printPDF(e)} // HANDLE PRINT FUNCTION
content={() => this.componentRef}
/>
<ComponentToPrint ref={el => (this.componentRef = el)} />
</div>
)
}
}
【讨论】: