在 React 中导出为 PDF-Table
Export to PDF in React-Table
我在 react-table 中有 10 行值。我需要转换为 PDF 格式?.ss 可以转换吗?
使用jsPDF and jspdf-autotable来完成这个。查看下面的代码:
import React from 'react';
import jsPDF from "jspdf";
import "jspdf-autotable";
import './App.css';
class App extends React.Component {
constructor() {
super();
this.state = {
people: [
{ name: "Keanu Reeves", profession: "Actor" },
{ name: "Lionel Messi", profession: "Football Player" },
{ name: "Cristiano Ronaldo", profession: "Football Player" },
{ name: "Jack Nicklaus", profession: "Golf Player" },
]
}
}
exportPDF = () => {
const unit = "pt";
const size = "A4"; // Use A1, A2, A3 or A4
const orientation = "portrait"; // portrait or landscape
const marginLeft = 40;
const doc = new jsPDF(orientation, unit, size);
doc.setFontSize(15);
const title = "My Awesome Report";
const headers = [["NAME", "PROFESSION"]];
const data = this.state.people.map(elt=> [elt.name, elt.profession]);
let content = {
startY: 50,
head: headers,
body: data
};
doc.text(title, marginLeft, 40);
doc.autoTable(content);
doc.save("report.pdf")
}
render() {
return (
<div>
<button onClick={() => this.exportPDF()}>Generate Report</button>
</div>
);
}
}
export default App;
这应该生成这样的 PDF:
希望对您有所帮助。
我在 react-table 中有 10 行值。我需要转换为 PDF 格式?.ss 可以转换吗?
使用jsPDF and jspdf-autotable来完成这个。查看下面的代码:
import React from 'react';
import jsPDF from "jspdf";
import "jspdf-autotable";
import './App.css';
class App extends React.Component {
constructor() {
super();
this.state = {
people: [
{ name: "Keanu Reeves", profession: "Actor" },
{ name: "Lionel Messi", profession: "Football Player" },
{ name: "Cristiano Ronaldo", profession: "Football Player" },
{ name: "Jack Nicklaus", profession: "Golf Player" },
]
}
}
exportPDF = () => {
const unit = "pt";
const size = "A4"; // Use A1, A2, A3 or A4
const orientation = "portrait"; // portrait or landscape
const marginLeft = 40;
const doc = new jsPDF(orientation, unit, size);
doc.setFontSize(15);
const title = "My Awesome Report";
const headers = [["NAME", "PROFESSION"]];
const data = this.state.people.map(elt=> [elt.name, elt.profession]);
let content = {
startY: 50,
head: headers,
body: data
};
doc.text(title, marginLeft, 40);
doc.autoTable(content);
doc.save("report.pdf")
}
render() {
return (
<div>
<button onClick={() => this.exportPDF()}>Generate Report</button>
</div>
);
}
}
export default App;
这应该生成这样的 PDF:
希望对您有所帮助。