0.1.6 • Published 9 months ago

@component-hook/pdf-canvas v0.1.6

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

@component-hook/pdf-canvas

Rendering PDF documents onto a canvas with vue3 component (DEMO)
Implementation depository: PDF-signature

Features

  • Rendering PDF documents onto a canvas
  • Open encrypted PDF files
  • Drag and drop the images and text onto the canvas
  • Manually add the images and text onto the canvas
  • Supports typescript

Installation

$ npm install @component-hook/pdf-canvas

# or use yarn
$ yarn add @component-hook/pdf-canvas

# or use pnpm
$ pnpm install @component-hook/pdf-canvas

Basic Usage

<script setup lang="ts">
import { ref } from 'vue';
import PdfCanvas, { useFabric, type PDF } from '@component-hook/pdf-canvas';

const { loadFile } = useFabric();
const currentPdf = ref<PDF>();

async function uploadFile(event: Event) {
  const target = event.target as HTMLInputElement;
  const { files } = target;

  if (!files) return;
  const file = files[0];
  const content = await loadFile(file);

  currentPdf.value = content;
  target.value = '';
}
</script>

<template>
  <div class="w-fit flex flex-col items-center gap-3">
    <pdf-canvas
      v-if="currentPdf"
      :file="currentPdf"
    />

    <p
      v-else
      class="font-mono text-sm"
    >
      Please select a PDF file or image.
    </p>

    <button class="relative">
      <input
        type="file"
        accept="application/pdf, .jpg, .png"
        class="opacity-0 top-0 left-0 absolute w-[94px] h-[36px] cursor-pointer"
        @change="uploadFile"
      />
      select file
    </button>
  </div>
</template>

Attributes

NameRequiredTypeDescriptionDefault
filetruePDFThe data is generated by loadFile of useFabric hook
pagefalsenumberThe page number you want to display1
canvasIdfalsestringCanvas dom prefix id selector - ${canvasId}-${page - 1}PDF-canvas
fileZoomfalsenumberZoom in and out of the displayed canvas1
fileScalefalsenumberThe actual size of the canvas will affect the display clarity1
canvasClassfalsestringCanvas dom class selector
isDropfalsebooleanControl whether to drag and drop images and text onto the canvasfalse
passwordfalsestringOpen password for encrypted PDF files
dropTextOptionsfalseobjectfabric.js FabricText optionstext options
dropImageOptionsfalseobjectfabric.js FabricImage optionsimage options
closeSvgOptionsfalseobjectSetup close svg optionsclose options

Exposes

EventDescriptionType
addImageManually add the images onto the canvasFunction (src: string, options?: TOptions<ImageProps>) => void
addTextManually add the text onto the canvasFunction (text: string, options?: TOptions<TextProps>) => void
clearActiveManually deactivate statusFunction () => void
deleteCanvasDelete the current canvasFunction () => void
canvasRefThe current canvas dom refobject Ref<HTMLCanvasElement>

UseFabric

EventDescriptionType
loadFileLoad PDF file or imageFunction (file: File, password?: string): Promise<PDF>
0.1.6

9 months ago

0.1.5

10 months ago

0.1.4

10 months ago

0.1.3

11 months ago

0.1.3-alpha.8

11 months ago

0.1.3-alpha.7

11 months ago

0.1.3-alpha.6

11 months ago

0.1.3-alpha.5

11 months ago

0.1.3-alpha.4

11 months ago

0.1.3-alpha.3

11 months ago

0.1.3-alpha.2

11 months ago

0.1.3-alpha.1

11 months ago

0.1.3-alpha.0

11 months ago

0.1.2

11 months ago

0.1.1

1 year ago