wc-svg-annotator

1.0.1 • Public • Published

svg-annotator web component

A web component to select any area on a web page, annotate it and save the result to pdf.

Features:

  • adds a button on the page, to enable the selection and annotation of its content
  • after selecting by dragging the mouse, a modal will display a canvas copy of the selection area, along with annotation tools
  • generate a pdf of the annotated content

Annotation tools:

  • create shapes (rectangle, circle, arrow)
  • freehand drawing
  • add text (includes bullet points mode)
  • select, move, resize, copy paste, delete, group & ungroup, redo shapes
  • save to pdf (uses html2canvas & jspdf as dependencies)
  • choose printing orientation
  • choose hd or low def print

Project setup

npm i wc-svg-annotator

Place the web component on the desired page:

<html>
  <!-- your content -->
  <svg-annotator />
</html>

Props

Prop Description Default Options
button-position Placement of the fixed starter button on the page "mr" (middle right) "tr", "mr", "br", "tl", "ml", "bl"
button-size Size of the annotation toolbar buttons 28 -
font-family Font family of the annotator "Helvetica" -
icon-color Color of the icons and borders of the annotator buttons "#4a4a4a" -
show-print Enable / Disable pdf functionality true true, false
show-tooltips Show / Hide tooltips true true, false
translation-auto-orientation Label for the auto print orientation checkbox "auto print orientation" -
translation-clipboard-failure Label for the error message if the image copy to clipboard feature is not supported by the client's browser "This functionality is not supported by your browser. Sorry" -
translation-clipboard-success Label for the success message after copying to clipboard "Image successfully copied to your clipboard." -
translation-color Label for the color picker input "Color" -
translation-color-alpha Label for the color alpha slider input "Color alpha" -
translation-dashed-lines Label for the dashed lines checkbox "Dashed lines" -
translation-filled Label for the filled shape checkbox "Filled" -
translation-hd-print Label for the hd print checkbox "hd print" -
translation-font-size Label for the font size input "Font size" -
translation-thickness Label for the line thickness input "Thickness" -
translation-title Title of the annotator summary "Annotations" -
translation-tooltip-group Tooltip for the group button "Select & Group" -
translation-tooltip-delete Tooltip for the delete button "Delete" -
translation-tooltip-move Tooltip for the move button "Move" -
translation-tooltip-resize Tooltip for the resize button "Resize" -
translation-tooltip-bring-to-front Tooltip for the bring to front button "Bring to front" -
translation-tooltip-bring-to-back Tooltip for the bring to back button "Bring to back" -
translation-tooltip-duplicate Tooltip for the duplicate button "Duplicate" -
translation-tooltip-redo Tooltip for the redo button "Redo last shape" -
translation-tooltip-undo Tooltip for the undo button "Undo last shape" -
translation-tooltip-ungroup Tooltip for the ungroup button "Ungroup" -
translation-tooltip-pdf Tooltip for the save pdf button "Save pdf" -
translation-tooltip-clipboard Tooltip for the copy to clipboard button "Copy to clipboard" -

Here is the syntax to use all the props in your HTML. If you don't add props, these will be used by default:

<html>
  <svg-annotator
    button-position="mr"
    button-size="28"
    font-family="Helvetica"
    icon-color="#4a4a4a"
    show-print="true"
    show-tooltips="true"
    translation-auto-orientation="auto print orientation"
    translation-clipboard-failure="This functionality is not supported by your browser. Sorry"
    translation-clipboard-success="Image successfully copied to your clipboard."
    translation-color="Color"
    translation-color-alpha="Color alpha"
    translation-dashed-lines="Dashed lines"
    translation-filled="Filled"
    translation-font-size="Font size"
    translation-hd-print="hd print"
    translation-thickness="Thickness"
    translation-title="Annotations"
    translation-tooltip-group="Select & Group"
    translation-tooltip-delete="Delete"
    translation-tooltip-move="Move"
    translation-tooltip-resize="Resize"
    translation-tooltip-bring-to-front="Bring to front"
    translation-tooltip-bring-to-back="Bring to back"
    translation-tooltip-duplicate="Duplicate"
    translation-tooltip-redo="Redo last shape"
    translation-tooltip-undo="Undo last shape"
    translation-tooltip-ungroup="Ungroup"
    translation-tooltip-pdf="Save pdf"
    translation-tooltip-clipboard="Copy to clipboard"
  />
</html>

Caveats

  • The copy to clipboard funtionality only works on chromium-based browsers at this stage. In case the browser does not support this functionality, the copy to clipboard button will simply not show.

Dependencies (5)

Dev Dependencies (11)

Package Sidebar

Install

npm i wc-svg-annotator

Weekly Downloads

11

Version

1.0.1

License

MIT

Unpacked Size

7.77 MB

Total Files

8

Last publish

Collaborators

  • aleclloydprobert