•  


GitHub - signeasynow/react-pdf-sdk: Open Source PDF Editor
Skip to content

signeasynow/react-pdf-sdk

Folders and files

Name Name
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

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

  2. Install

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

or

yarn add @prodfox/react-pdf-editor

  1. 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 []

Field Description
zoom Enable zoom in/out of the document in view
search Enable search functions
download Enable downloading the document
thumbnails Enable a thumbnails panel
panel-toggle Enable the left-side panel to be togglable
chat Enable 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 []

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

editing Object []

Field Description
remove Enable the ability to remove pages
rotation Enable the rotation of individual pages
extraction Enabling extracting out a set of pages into one document
move Re-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()
- "漢字路" 한글한자자동변환 서비스는 교육부 고전문헌국역지원사업의 지원으로 구축되었습니다.
- "漢字路" 한글한자자동변환 서비스는 전통문화연구회 "울산대학교한국어처리연구실 옥철영(IT융합전공)교수팀"에서 개발한 한글한자자동변환기를 바탕하여 지속적으로 공동 연구 개발하고 있는 서비스입니다.
- 현재 고유명사(인명, 지명등)을 비롯한 여러 변환오류가 있으며 이를 해결하고자 많은 연구 개발을 진행하고자 하고 있습니다. 이를 인지하시고 다른 곳에서 인용시 한자 변환 결과를 한번 더 검토하시고 사용해 주시기 바랍니다.
- 변환오류 및 건의,문의사항은 juntong@juntong.or.kr로 메일로 보내주시면 감사하겠습니다. .
Copyright ⓒ 2020 By '전통문화연구회(傳統文化硏究會)' All Rights reserved.
 한국   대만   중국   일본