gpt4 book ai didi

reactjs - 单击 React 中的按钮后创建 PDF 文档

转载 作者:行者123 更新时间:2023-12-05 03:38:07 25 4
gpt4 key购买 nike

我想生成一个 PDF 文档,该文档是在用户为我当前的 React 页面单击“创建 PDF 文档”后生成的。我要生成的文档将包含以下内容:

  1. 当前页面中的一些但不是全部组件
  2. 可选
  3. 只在点击时下载文档,别处下载

我花了 3 个小时研究这个琐碎的任务,但不知何故,我查找的所有库都只允许其预定义组件,或者不可选择,或者两者兼而有之。我知道这项任务非常琐碎,但我究竟该怎么做呢?

最佳答案

做到这一点的最佳方法是,拥有一个单独的组件,只包含需要下载的数据。您可以使用 Prop 传递所有必要的数据。

我推荐使用这个库 React-PDF .

App.js


import { PDFDownloadLink } from '@react-pdf/renderer';
import Document from './Document.js'

export default function App() {

const data = {/* Pass your data here */}
return (
<div className="App">
<PDFDownloadLink document={<MyDocument data={data}/>} fileName="somename.pdf">
{({ blob, url, loading, error }) =>
loading ? 'Loading document...' : 'Download now!'
}
</PDFDownloadLink>
</div>
);
}

Document.js

import React from 'react';
import { Document, Page, Text, View, StyleSheet } from '@react-pdf/renderer';

// Create styles
const styles = StyleSheet.create({
page: {
flexDirection: 'row',
backgroundColor: '#E4E4E4'
},
section: {
margin: 10,
padding: 10,
flexGrow: 1
}
});

// Create Document Component
const MyDocument = ({ data }) => ( //
<Document>
<Page size="A4" style={styles.page}>
<View style={styles.section}>
<Text>{data.something}</Text>
</View>
<View style={styles.section}>
<Text>{data.something}</Text>
</View>
</Page>
</Document>
);

在主组件中,您将有一个立即下载! 按钮。您的 PDF 将仅包含您通过 props 传递的数据

关于reactjs - 单击 React 中的按钮后创建 PDF 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69075720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com