🚀 Socket Launch Week 🚀 Day 5: Introducing Socket Fix.Learn More
Socket
Sign inDemoInstall
Socket

@prodfox/react-pdf-editor

Package Overview
Dependencies
Maintainers
1
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@prodfox/react-pdf-editor

## Core

1.2.38
latest
Source
npm
Version published
Maintainers
1
Created
Source

React PDF Editor

View, edit, and Chat-with-your-PDF with AI.

Add View to your app for free. Learn pricing for all features here

Visual of app

Demo

https://www.signeasynow.com/edit-your-pdf

Want to see the source code for the above demo? Find it here.

Quick start

  • Copy-paste the pdf-ui folder here into your own public folder.

  • Install

npm install --save @prodfox/react-pdf-editor

or

yarn add @prodfox/react-pdf-editor

  • Create a component
import { useRef } from 'react';
import { useCreateIframeAndLoadViewer } from "@prodfox/react-pdf-editor";

function App() {
  const containerRef = useRef(null);

  const { download } = useCreateIframeAndLoadViewer({
    container: containerRef,
    licenseKey: "sandbox",
    locale: "en",
    tools: {
      editing: [
       "extract",
       "remove",
        "move"
      ],
      thumbnails: [
        "zoom",
        "expand"
      ],
      general: [
        "thumbnails",
        "download",
        "search",
        "panel-toggle",
        "zoom"
      ],
    },
    files: [
      {
        url: "https://pdftron.s3.amazonaws.com/downloads/pl/demo-annotated.pdf",
        name: "my-file1.pdf"
      },
      {
        url: "https://pdftron.s3.amazonaws.com/downloads/pl/demo-annotated.pdf",
        name: "my-file2.pdf"
      }
    ],
  });


  return (
    <div>
      <button onClick={download}>Download</button>
      <div className="container" id="pdf" ref={containerRef}>
    </div>
    </div>
  );
}

export default App;

Core

Parameters

container Required

The HTML element to attach the PDF viewer to.

tools Object {}

Control what tools are available in the UI. Available keys are thumbnails, general, editing, ...

useCreateIframeAndLoadViewer({
  tools: {
    thumbnails: ...,
    general: ...,
    editing: ...,
  },
  ...other parameters
});

general Object []

FieldDescription
zoomEnable zoom in/out of the document in view
searchEnable search functions
downloadEnable downloading the document
thumbnailsEnable a thumbnails panel
panel-toggleEnable the left-side panel to be togglable
chatEnable AI conversations with your PDF (user ID is required after 10 questions)
useCreateIframeAndLoadViewer({
  tools: {
    general: [
      "zoom",
      "search",
      "download",
      "thumbnails",
      "panel-toggle"
    ],
  },
  ...other parameters
});

thumbnails Object []

FieldDescription
zoomEnable a slider above thumbnails to increase/decrease the size of the thumbnails
expandEnable the thumbnails bar to be expandable to the full screen
useCreateIframeAndLoadViewer({
  tools: {
    thumbnails: [
      "zoom",
      "expand"
    ],
  },
  ...other parameters
});

editing Object []

FieldDescription
removeEnable the ability to remove pages
rotationEnable the rotation of individual pages
extractionEnabling extracting out a set of pages into one document
moveRe-arrange pages in a document
useCreateIframeAndLoadViewer({
  tools: {
    editing: [
      "remove",
      "rotation",
      "extraction",
      "move"
    ],
  },
  ...other parameters
});

locale string en Optional

Options:

en - English

es - Spanish

ru - Russian

(Reach out if you need a particular language added)

onFileFailed Function optional

Callback when a file fails to upload

useCreateIframeAndLoadViewer({
  onFileFailed: (errorMessage) => {
    // handle the failure as you need
  }
});

mode string optional

Defaults to regular. Set it to split to enable being able to select split markers to be then used for splitting a document into several documents.

Functions

Combine several files into one

const { combineFiles } = useCreateIframeAndLoadViewer({
  ...
});

combineFiles();

Listen for when the pages are loaded for the active document

const { pagesLoaded } = useCreateIframeAndLoadViewer({
  ...
});

if (pagesLoaded) {
  // logic here
}

Download

const { download } = useCreateIframeAndLoadViewer({
  ...
});

download();

Listen for when the PDF editor is ready to accept commands

const { isReady } = useCreateIframeAndLoadViewer({
  ...
});

if (isReady) {
  // logic here
}

Toggle displaying the full screen thumbnail view

const { toggleFullScreenThumbnails } = useCreateIframeAndLoadViewer({
  ...
});

toggleFullScreenThumbnails(true) // set this to true or false to open/close it.

Control the thumbnail zoom level. Ranges from 0 to 1.

const { setThumbnailZoom } = useCreateIframeAndLoadViewer({
  ...
});

setThumbnailZoom(0.5)

Toggle displaying the search bar on the right

const { toggleSearchbar } = useCreateIframeAndLoadViewer({
  ...
});

toggleSearchbar(true) // set this to true or false to open/close it.

Delete the AI conversation chat history

const { removeChatHistory } = useCreateIframeAndLoadViewer({
  ...
});

removeChatHistory()

Get the 0-indexed array of selected pages

const { selectedPages } = useCreateIframeAndLoadViewer({
  ...
});

Extract the selected pages

const { extractPages } = useCreateIframeAndLoadViewer({
  ...
});

extractPages()

Split the document into several documents based on the split markers the user selected.

const { splitPages } = useCreateIframeAndLoadViewer({
  ...
});

splitPages()

FAQs

Package last updated on 07 Mar 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts