aanckar / react-pdf-tailwind

Use Tailwind CSS to style PDFs created with react-pdf
327 stars 12 forks source link
pdf pdf-generation react tailwindcss

React PDF Tailwind

Use Tailwind CSS to style PDFs created with react-pdf.

Try it yourself in the react-pdf-repl interactive playground.

Example

import { Document, Page, Text, View, StyleSheet } from "@react-pdf/renderer";
import { createTw } from "react-pdf-tailwind";

// The 'theme' object is your Tailwind theme config
const tw = createTw({
  theme: {
    fontFamily: {
      sans: ["Comic Sans"],
    },
    extend: {
      colors: {
        custom: "#bada55",
      },
    },
  },
});

export default function MyPdf() {
  return (
    <Document>
      <Page size="A4" style={tw("p-12 font-sans")}>
        <View style={tw("p-20 bg-gray-100")}>
          <Text style={tw("text-custom text-3xl")}>Section #1</Text>
        </View>
        <View style={tw("mt-12 px-8 rotate-2")}>
          <Text style={tw("text-amber-600 text-2xl")}>Section #2</Text>
        </View>
      </Page>
    </Document>
  );
}

More detailed examples can be found in the examples folder.

Installation

// Or pnpm, yarn...
npm install react-pdf-tailwind

Usage

The createTw function takes two arguments: the first is a Tailwind config object (which currently only looks at the theme settings), and the second is an optional options object with the following defaults:

const tw = createTw(
  // Tailwind config
  {
    theme: ...
  },
  // Additional options
  {
    // Set the base font size in points (see note below regarding units)
    ptPerRem: 12,
  }
);

Notes