{"id":18696319,"url":"https://github.com/dynamsoft/document-viewer-javascript","last_synced_at":"2026-01-16T05:59:56.591Z","repository":{"id":214138115,"uuid":"735459723","full_name":"Dynamsoft/document-viewer-javascript","owner":"Dynamsoft","description":null,"archived":false,"fork":false,"pushed_at":"2026-01-13T05:12:30.000Z","size":20750,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-13T08:35:43.700Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dynamsoft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-12-25T02:42:02.000Z","updated_at":"2026-01-13T05:12:33.000Z","dependencies_parsed_at":"2025-10-16T23:18:08.572Z","dependency_job_id":"44b26bba-1147-43a9-8991-8fb7bda2e08e","html_url":"https://github.com/Dynamsoft/document-viewer-javascript","commit_stats":null,"previous_names":["dynamsoft/document-viewer-javascript"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/Dynamsoft/document-viewer-javascript","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dynamsoft%2Fdocument-viewer-javascript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dynamsoft%2Fdocument-viewer-javascript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dynamsoft%2Fdocument-viewer-javascript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dynamsoft%2Fdocument-viewer-javascript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dynamsoft","download_url":"https://codeload.github.com/Dynamsoft/document-viewer-javascript/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dynamsoft%2Fdocument-viewer-javascript/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28477572,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T03:13:13.607Z","status":"ssl_error","status_checked_at":"2026-01-16T03:11:47.863Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T11:18:02.733Z","updated_at":"2026-01-16T05:59:56.558Z","avatar_url":"https://github.com/Dynamsoft.png","language":"HTML","readme":"# Dynamsoft Document Viewer\n\n![version](https://img.shields.io/npm/v/dynamsoft-document-viewer.svg)\n![downloads](https://img.shields.io/npm/dm/dynamsoft-document-viewer.svg) \n![jsdelivr](https://img.shields.io/jsdelivr/npm/hm/dynamsoft-document-viewer.svg)\n\n[Dynamsoft Document Viewer (DDV)](https://www.dynamsoft.com/document-viewer/docs/introduction/index.html) is a browser-based JavaScript SDK designed for viewing and editing images and PDFs. It provides a wide range of functionalities, including PDF annotation, page manipulation, image quality enhancement, and document saving.\n\n#### Security\nDynamsoft Document Viewer is independently developed and does not rely on any external third-party open-source software. All processing, such as rendering and editing, is securely performed within the browser using a web assembly module. This architecture eliminates the need for a server-side backend, ensuring security compliance and scalability.\n\n####  Browser and Platform Compatibility\nDynamsoft Document Viewer is designed to work seamlessly across different browsers and platforms. It is compatible with major browsers like Chrome, Firefox, Safari, and Edge, ensuring a consistent user experience. Additionally, it supports various operating systems, including Windows, macOS, Linux, iOS, and Android, allowing users to access documents from any device.\n\n#### Supported File Types\nUsers can open, edit, and save PDFs, as well as various image formats such as JPEG, PNG, and TIFF.\n\n#### Annotation Types\nDynamsoft Document Viewer supports a variety of annotation types to enhance document interaction and collaboration. Users can add, edit, and delete annotations such as:\n\n- text\n- images\n- signature\n- shapes\n- stamps\n- freehand drawings\n\n#### Data Management Concepts\nDynamsoft Document Viewer organizes data using two main concepts: “document” and “page.” A document can contain one or multiple pages, and each page must belong to a single document.\n\nPage: The smallest unit of data management, currently represented as an image. Each page has a unique pageUid.\nDocument: A collection of pages, each with a unique docUid. Documents collectively make up the entire data set.\nManaging data, therefore, involves managing documents and pages.\n\nIf you are using the default UI of DDV, data processing and management are handled internally.\n\n#### UI Customization\nThe SDK offers extensive customization options, enabling developers to tailor the interface, toolbar, and annotation tools to meet specific application needs and branding requirements.\n\n#### Designed with Camera Capture in Mind\nDynamsoft Document Viewer is designed for seamless integration with camera capture. It features five built-in viewer types, with the first three optimized for camera capture scenarios:\n- Edit Viewer: Provides image quality enhancement filters.\n\n- Capture Viewer: Includes built-in camera control for continuous capture.\n\n- Perspective Viewer: Equipped with document cropping features; for document detection, using Dynamsoft Document Normalizer is recommended.\n\n- Browse Viewer\n\n- Custom Viewer\n\nAs part of the Mobile Web Capture solution, this viewer helps developers create efficient, accurate, and user-friendly workflows, from camera capture to document finalization.\n\n## Table of Contents\n\n- [System Requirements](#system-requirements)\n- [License Key](#license-key)\n- [Adding the dependency](#adding-the-dependency)\n- [Creating HelloWorld](#creating-helloworld)\n- [Documentation](#documentation)\n- [Features](#features)\n- [Contact Us](#contact-us)\n- [License Agreement](#license-agreement)\n- [Changelog](#changelog)\n\n# System Requirements\n\nThe SDK requires the following features to work:\n\n- `WebAssembly`, `Blob`, `URL`/`createObjectURL`, `Web Workers`\n\n## Supported Browsers\n\nThe following table is a list of supported browsers based on the above requirements:\n\n| Browser Name |             PC                   |   Mobile    |\n| :----------: | :------------------------------: | :---------: |\n|    Chrome    |             v75+                 |   v75+      |\n|   Firefox    |             v69+                 |   v79+      |\n|    Safari    |             v14+                 |   v15+      |\n|     Edge     |             v79+                 |   v92+      |\n\nApart from the browsers, the operating systems may impose some limitations of their own that could restrict the use of the SDKs.\n\n## License Key\n\n[![](https://img.shields.io/badge/Get-30--day%20FREE%20Trial%20License-blue)](https://www.dynamsoft.com/customer/license/trialLicense/?product=mwc\u0026utm_source=npm)\n\n## Adding the dependency\n\nPlease refer to [this article](https://www.dynamsoft.com/document-viewer/docs/gettingstarted/add_dependency.html).\n\n## Creating HelloWorld\n\n[How to create HelloWorld](https://www.dynamsoft.com/document-viewer/docs/gettingstarted/helloworld.html)\n\nReview the complete code:\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml lang=\"en\"\u003e\n\u003chead\u003e\n    \u003cmeta charset=\"UTF-8\"\u003e\n    \u003cmeta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"\u003e\n    \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no\"\u003e\n    \u003ctitle\u003eDDV - HelloWorld\u003c/title\u003e\n    \u003clink rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/dynamsoft-document-viewer@latest/dist/ddv.css\"\u003e\n    \u003cscript src=\"https://cdn.jsdelivr.net/npm/dynamsoft-document-viewer@latest/dist/ddv.js\"\u003e\u003c/script\u003e\n\u003c/head\u003e\n\u003cstyle\u003e\n    html,body {\n        width: 100%;\n        height: 100%;\n        margin:0;\n        padding:0;\n        overscroll-behavior-y: none;\n        overflow: hidden;\n    }\n\n    #container {\n        width: 100%;\n        height: 100%;\n    }\n\u003c/style\u003e\n\u003cbody\u003e\n    \u003cdiv id=\"container\"\u003e\u003c/div\u003e\n\u003c/body\u003e\n\u003cscript type=\"module\"\u003e\n    (async () =\u003e {\n        // Public trial license which is valid for 24 hours\n        // You can request a 30-day trial key from https://www.dynamsoft.com/customer/license/trialLicense/?product=mwc\n        Dynamsoft.DDV.Core.license = \"DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9\";\n        Dynamsoft.DDV.Core.engineResourcePath = \"https://cdn.jsdelivr.net/npm/dynamsoft-document-viewer@latest/dist/engine\";\n        await Dynamsoft.DDV.Core.init();\n        Dynamsoft.DDV.setProcessingHandler(\"imageFilter\", new Dynamsoft.DDV.ImageFilter());\n        const editViewer = new Dynamsoft.DDV.EditViewer({\n            container: \"container\",\n            uiConfig: Dynamsoft.DDV.getDefaultUiConfig(\"editViewer\", {includeAnnotationSet: true}),\n        });\n    })();\n\u003c/script\u003e\n\u003c/html\u003e\n```\n\n## Documentation\n\n* [Developer's Guide](https://www.dynamsoft.com/document-viewer/docs/introduction/index.html)\n* [API Reference](https://www.dynamsoft.com/document-viewer/docs/api/index.html)\n\n## Features\n\nGenerally, the features of DDV can be divided to two parts as below.\n\n### Data Management\n\nData management is to manage the data which is imported into DDV. It is managed from the following three aspects:\n\n- Document Management: Document creation/deletion/merging, etc.\n- Page management: Pages in documents loading/saving/deleting/moving, etc.\n- Annotation management:  Adding/deleting/selecting/dragging/resizing/rotating annotations, etc. \n\n### Viewers\n\nViewers are used to display the data. According to the different uses of viewers, DDV provides five different viewer types, which are implemented through five viewer classes.\n\n- Edit Viewer: Edit the pages in document, such as, rotating, cropping, filtering, annotating, etc. and adjust the layout of the display.\n- Capture Viewer: Control camera, play video stream, and capture the images from camera.\n- Perspective Viewer: Do page boundary manual adjustment \u0026 perspective transformation.\n- Browse Viewer: Display pages in multiple-mode, pages can be multiple selected.\n- Custom Viewer: No built-in UI or functionality, which is used for creating your own viewer.\n\n[More](https://www.dynamsoft.com/document-viewer/docs/features/index.html)\n\n## Contact Us\n\n[Contact Dynamsoft](https://www.dynamsoft.com/company/contact/) to resolve any issue you encounter with the library.\n\n## License Agreement\n\nhttps://www.dynamsoft.com/company/license-agreement/\n\n## Changelog\n\nCheck out the [release notes](https://www.dynamsoft.com/document-viewer/docs/releasenotes/index.html) of the Dynamsoft Document Viewer.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdynamsoft%2Fdocument-viewer-javascript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdynamsoft%2Fdocument-viewer-javascript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdynamsoft%2Fdocument-viewer-javascript/lists"}