React renderer for creating PDF files on the browser, mobile and server
This project is still in development, so please do not use react-pdf
on production yet. First release soon!
# You should always install the core package
yarn add @react-pdf/core
# And also the bindings that you need
yarn add @react-pdf/node
yarn add @react-pdf/dom
yarn add @react-pdf/mobile
import React from 'react';
import { Page, Text, View, Document, StyleSheet } from '@react-pdf/core';
// Create styles
const styles = StyleSheet.create({
page: {
flexDirection: 'row',
backgroundColor: '#E4E4E4'
},
section: {
margin: 10,
padding: 10,
flexGrow: 1
}
});
// Create Document Component
const MyDocument = () => (
<Document>
<Page size="A4" style={styles.page}>
<View style={styles.section}>
<Text>Section #1</Text>
</View>
<View style={styles.section}>
<Text>Section #2</Text>
</View>
</Page>
</Document>
);
Note: you need add transform-loader
like in example
// to fix "regeneratorRuntime is not defined", which causes by "@react-pdf/*"
// also you can use "babel-polyfill"
import 'regenerator-runtime/runtime';
import React from 'react';
import ReactDOM from 'react-dom';
const App = () => (
<div>
<MyDocument />
</div>
);
ReactDOM.render(<App />, document.getElementById('root'));
import ReactPDF from '@react-pdf/node';
ReactPDF.render(<MyDocument />, `${__dirname}/example.pdf`);
Coming soon
For each example, try opening output.pdf
to see the result.
![]() Text |
![]() Images |
![]() Resume |
![]() Fractals |
![]() Knobs |
![]() Page wrap |
To run the examples, first clone the project and install the dependencies:
git clone https://github.com/diegomura/react-pdf.git
cd react-pdf
yarn install
Then, run yarn example -- <example-name>
yarn example -- fractals
This project exists thanks to all the people who contribute. [Contribute].
Thank you to all our sponsors! [Become a sponsors]
Thank you to all our backers! [Become a backer]
MIT ยฉ Diego Muracciole