1.2.40 • Published 8 months ago

@ballerine/react-pdf-toolkit v1.2.40

Weekly downloads
-
License
-
Repository
-
Last release
8 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

8 months ago

1.2.39

8 months ago

1.2.34

9 months ago

1.2.35

8 months ago

1.2.33

9 months ago

1.2.38

8 months ago

1.2.36

8 months ago

1.2.37

8 months ago

1.2.19

10 months ago

1.2.20

10 months ago

1.2.23

10 months ago

1.2.24

9 months ago

1.2.21

10 months ago

1.2.22

10 months ago

1.2.27

9 months ago

1.2.28

9 months ago

1.2.25

9 months ago

1.2.26

9 months ago

1.2.29

9 months ago

1.2.30

9 months ago

1.2.31

9 months ago

1.2.32

9 months ago

1.2.18

10 months ago

1.2.8

11 months ago

1.2.6

11 months ago

1.2.5

11 months ago

1.2.4

12 months ago

1.2.3

1 year ago

1.2.9

11 months ago

1.2.12

11 months ago

1.2.13

10 months ago

1.2.10

11 months ago

1.2.11

11 months ago

1.2.16

10 months ago

1.2.17

10 months ago

1.2.14

10 months ago

1.2.15

10 months ago

1.2.2

1 year ago

1.2.1

1 year ago

1.1.0

1 year ago

1.0.16

1 year ago

1.0.15

1 year ago

1.0.14

1 year ago

1.0.13

1 year ago

1.0.12

1 year ago

1.0.11

1 year ago

1.0.10

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

0.0.1

1 year ago