# README

# pdf-write

**pdf-write** is a utility class for Node.js that provides functions to manipulate PDF files using the pdf-lib library. It allows you to embed text at specified coordinates, center text automatically, customize fonts and colors, and insert dynamic content like the current date in various formats.

### features

- Add text to existing PDF documents at custom or centered positions.
- Support for different font styles, including bold and Helvetica.
- Customize font size and RGB color for text.
- Dynamic date insertion in full, half, or short format.
- Easy-to-use API for writing changes to a new PDF file.

### Detail

- Version 0.0.9
- Oct 18, 2024
- [Git Hub](https://github.com/JasmeetSingh2003)

## Installation

[![NPM Version][npm-version-image]][npm-url]
[![NPM Install Size][npm-install-size-image]][npm-install-size-url]
[![NPM Downloads][npm-downloads-image]][npm-downloads-url]

```bash
npm install pdf-write
```

## import/require

In Typescript

```js
import { PDF } from "pdf-write";
```

In Javascript

```js
const { PDF } = require("pdf-write");
```

## How to use

```js
PDF.writePDF({
  pdfFilePath: "pdfFile.pdf",
  outPutPath: "./outPut.pdf",
  config: {
    0: [
      {
        text: "your_text",
        xAxis: 150,
        yAxis: 537,
        fontSize: 15,
      },
    ],
  },
})
  .then(() => {
    console.log("PDF genrates successfully");
  })
  .catch((error) => {
    console.log(error);
  });
```

### Configuration

##### config is a object with the keys are number data type and the value for that is given below

- text (string): The text to insert. Use "CurrentDate" to insert the current date dynamically.
- fontSize (number): Font size of the text.
- monthType (optional, string): Date format when using "CurrentDate". Options: "full", "half", "short".
- xAxis (optional, number): X-coordinate to place the text. Defaults to center if not - provided.
- yAxis (optional, number): Y-coordinate to place the text. Defaults to center if not - provided.
- isBold (optional, boolean): Whether to use bold font (Helvetica Bold).
- color (optional, object): RGB values to define the text color. Format: { red, green, blue }.

## License

This project is licensed under the MIT License.

### Report bugs

```js
im.jsmeet@gmail.com
```

[npm-version-image]: https://badgen.net/npm/v/pdf-write
[npm-install-size-image]: https://badgen.net/packagephobia/install/pdf-write
[npm-downloads-image]: https://badgen.net/npm/dm/pdf-write
[npm-url]: https://www.npmjs.com/package/pdf-write
[npm-install-size-url]: https://packagephobia.com/result?p=pdf-write
[npm-downloads-url]: https://npmcharts.com/compare/pdf-write?minimal=true
