1.2.40 • Published 11 months ago

@ballerine/react-pdf-toolkit v1.2.40

Weekly downloads
-
License
-
Repository
-
Last release
11 months ago

react-pdf-toolkit

react-pdf-toolkit is a package for generating PDF documents in React applications. Built on top of @react-pdf/renderer, it uses Tailwind CSS for styling, providing a set of components that simplify PDF creation.

Features

  • Core Integration: Utilizes @react-pdf/renderer for robust PDF rendering capabilities.
  • Tailwind CSS Styling: Applies Tailwind CSS for styling, ensuring a seamless and efficient design workflow.
  • Component-Based: Offers a collection of reusable components for quick and efficient PDF creation.

Components

  • Badge

  • Divider

  • Image

  • Link

  • Typography

  • List

Utils

tw - wrapper which converts tailwind classes to pdf styles.

Example:

tw('flex flex-row gap-4')

mergeStyles - merges set of style objects in to single one.

mergeStyles([tw('flex'), tw('flex-row')]) // {display: 'flex', flexDirection: 'row'}

sanitizeString - Removes emoji from string value.

toTitleCase - Converts string to Title case format.

Hocs

withDataValidation - Component wrapper to perform validation. Wraps provided component and performs validation. Accepts json schema or Typebox output.

import { Type } from "@sinclair/typebox";
import { Page, View } from "@react-pdf/renderer";
import {Typography} from "@ballerine/react-pdf-toolkit"

const Schema =  Type.Object({
title: Type.String()
});

interface IPDFElementProps {
	 data: Static<typeof Schema>
}

const PDFElement = withDataValidation(({data}) =>
<Page>
	<View>
		<Typography>{data.title}</Typography>
	</View>
</Page>,
Schema) // Will throw exception in case if props.data doesnt match schema.

Installation

pnpm install @ballerine/react-pdf-toolkit

Example PDF

import { Page, View, Document } from '@react-pdf/renderer';
import {Typography} from '@ballerine/react-pdf-toolkit'

const Example = () => {
	return <Document>
		<Page>
		<View style={tw('flex flex-col')}>
			<Typography weight="bold" size="heading">Hello world!</Typography>
			<View>
				<Typography>I am PDF document.</Typography>
			</View>
		</View>
		</Page>
	</Document>
}
1.2.40

11 months ago

1.2.39

12 months ago

1.2.34

1 year ago

1.2.35

12 months ago

1.2.33

1 year ago

1.2.38

12 months ago

1.2.36

12 months ago

1.2.37

12 months ago

1.2.19

1 year ago

1.2.20

1 year ago

1.2.23

1 year ago

1.2.24

1 year ago

1.2.21

1 year ago

1.2.22

1 year ago

1.2.27

1 year ago

1.2.28

1 year ago

1.2.25

1 year ago

1.2.26

1 year ago

1.2.29

1 year ago

1.2.30

1 year ago

1.2.31

1 year ago

1.2.32

1 year ago

1.2.18

1 year ago

1.2.8

1 year ago

1.2.6

1 year ago

1.2.5

1 year ago

1.2.4

1 year ago

1.2.3

1 year ago

1.2.9

1 year ago

1.2.12

1 year ago

1.2.13

1 year ago

1.2.10

1 year ago

1.2.11

1 year ago

1.2.16

1 year ago

1.2.17

1 year ago

1.2.14

1 year ago

1.2.15

1 year ago

1.2.2

2 years ago

1.2.1

2 years ago

1.1.0

2 years ago

1.0.16

2 years ago

1.0.15

2 years ago

1.0.14

2 years ago

1.0.13

2 years ago

1.0.12

2 years ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

0.0.1

2 years ago