{"data":{"slug":"tony-xlh-chat-with-scanned-documents","name":"Chat-with-Scanned-Documents","tagline":"A demo chatting with documents scanned using Dynamic Web TWAIN and Tesseract.js","github_url":"https://github.com/tony-xlh/Chat-with-Scanned-Documents","owner":"tony-xlh","repo":"Chat-with-Scanned-Documents","owner_avatar_url":"https://avatars.githubusercontent.com/u/112376616?v=4","primary_language":"JavaScript","stars":6,"forks":3,"topics":[],"archived":false,"github_pushed_at":"2023-05-25T01:41:00+00:00","maintenance_label":"Dormant","stars_delta_30d":0,"url":"https://www.graphcanon.com/tools/tony-xlh-chat-with-scanned-documents","markdown_url":"https://www.graphcanon.com/tools/tony-xlh-chat-with-scanned-documents.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/tony-xlh-chat-with-scanned-documents","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=tony-xlh-chat-with-scanned-documents","description":"A demo chatting with documents scanned with Dynamic Web TWAIN","homepage_url":null,"license":"MIT","open_issues":0,"watchers":2,"ai_summary":"This repository provides a demonstration for extracting text from scanned documents via Dynamic Web TWAIN and Tesseract.js, enabling interaction (chat) through LangChain.","readme_excerpt":"# Chat-with-Scanned-Documents\n\n\nA demo of using Tesseract.js to extract text of documents scanned with [Dynamic Web TWAIN](https://www.dynamsoft.com/web-twain/overview/) and use LangChain to chat with them.\n\nIf the SDK expires, you need to apply for your license [here](https://www.dynamsoft.com/customer/license/trialLicense?product=dwt).\n\n[Online demo](https://singular-chimera-686bc8.netlify.app/)\n\n### Installation\n\n```sh\nnpm install\n```\n\n### Start Dev Server\n\n```sh\nnpm start\n```\n\n### Build Prod Version\n\n```sh\nnpm run build\n```\n\n### Features:\n\n- ES6 Support via [babel](https://babeljs.io/) (v7)\n- JavaScript Linting via [eslint](https://eslint.org/)\n- SASS Support via [sass-loader](https://github.com/jtangelder/sass-loader)\n- Autoprefixing of browserspecific CSS rules via [postcss](https://postcss.org/) and [postcss-preset-env](https://github.com/csstools/postcss-preset-env)\n- Style Linting via [stylelint](https://stylelint.io/)\n\nWhen you run `npm run build` we use the [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) to move the css to a separate file. The css file gets included in the head of the `index.html`.","github_created_at":"2023-05-17T06:18:10+00:00","created_at":"2026-07-11T10:50:52.089314+00:00","updated_at":"2026-08-15T06:01:17.227655+00:00","categories":[{"slug":"data-retrieval","name":"Data & Retrieval","url":"https://www.graphcanon.com/categories/data-retrieval","markdown_url":"https://www.graphcanon.com/categories/data-retrieval.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/data-retrieval"},{"slug":"developer-tools","name":"Developer Tools","url":"https://www.graphcanon.com/categories/developer-tools","markdown_url":"https://www.graphcanon.com/categories/developer-tools.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/developer-tools"}],"tags":[{"slug":"document-scanning","name":"document scanning"},{"slug":"dynamic-web-twain","name":"dynamic web twain"},{"slug":"langchain","name":"langchain"},{"slug":"ocr","name":"ocr"},{"slug":"tesseract-js","name":"tesseract.js"}],"trust":{"provenance":{"is_fork":false,"github_id":641771242,"owner_type":"User","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-08-15T06:01:16.202Z","maintenance":{"label":"Dormant","score":18,"methodology":"github_public_v1","releases_90d":0,"days_since_push":1178,"last_release_at":null,"stars_delta_30d":0,"open_issues_delta_30d":0},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-11T10:50:59.957Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"mcp":{"source":"repo_scan","observed_at":"2026-08-15T06:01:16.647Z","server_manifest":false},"scan":{"source":"repo_scan","observed_at":"2026-08-15T06:01:16.647Z"},"has_cli":{"value":true,"source":"package.json:bin|scripts","observed_at":"2026-08-15T06:01:16.647Z"},"languages":{"value":["javascript"],"source":"github.language+package.json","observed_at":"2026-08-15T06:01:16.647Z"},"license_spdx":{"value":"MIT","source":"github.license","observed_at":"2026-08-15T06:01:16.647Z"}},"decision_facts":{"hosting":null,"pricing":null,"requirements":null,"constraints":null,"when_to_use":["Need to interact with content from scanned documents","Aiming to test or demonstrate OCR-based document interaction"],"when_not_to_use":["Situations demanding real-time, high-volume document scanning and processing","Applications requiring more advanced AI chat capabilities beyond LangChain"],"source":"enrich:decision_facts","observed_at":"2026-07-12T12:16:40.065Z"},"constraint_facets":null,"decision_summary":[{"label":"Adopt for","value":"Leverages Dynamic Web TWAIN for scanning and Tesseract.js for text extraction, integrating LangChain for chat functionality."}]}}