【问题标题】:How to make responsive pdf in react js using react-to-print library?如何使用 react-to-print 库在 react js 中制作响应式 pdf?
【发布时间】: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


    【解决方案1】:

    此包使用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>
          )
        }
      }
    

    【讨论】:

    • 它给了我以下错误:找不到名称'cloudprint'
    • 请查看Documentation
    • 你也可以使用这个package
    • 自 2020 年 12 月 31 日起,Google 云打印将不再受支持。请参阅支持文章以获取迁移帮助。
    • 无法安装包 cloud-print
    猜你喜欢
    • 1970-01-01
    • 2020-09-17
    • 2020-03-30
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 2021-10-05
    • 2022-01-22
    相关资源
    最近更新 更多