{"adoption": {"forks": 141, "observed_at": "2026-08-28T04:04:27.539951+00:00", "stars": 1346}, "canonical_url": "https://ross.abutalabs.com/products/pdf-document-layout-analysis", "card": {"archived": false, "artifact_type": "service", "description": "A Docker-powered service for PDF document layout analysis. This service provides a powerful and flexible PDF analysis service. The service allows for the segmentation and classification of different parts of PDF pages, identifying the elements such as texts, titles, pictures, tables and so on.", "domain": ["pdf", "computer-vision", "developer-tools"], "enriched": true, "function": ["ocr", "pdf", "machine-learning", "http-server", "image-processing"], "health_score": 94, "homepage": null, "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["huridocs/pdf-document-layout-analysis"], "name": "huridocs/pdf-document-layout-analysis", "platform": ["python", "self-hosted"], "pushed_at": "2026-07-13T15:26:17+00:00", "repo": "huridocs/pdf-document-layout-analysis", "stars": 1346, "tags": ["document-layout-analysis", "pdf-segmentation", "pdf-to-markdown", "gradio", "fastapi", "reading-order", "document-conversion", "natural-language-processing", "docker", "web-server", "gpu"], "topics": [], "urls": [], "use_cases": ["segment and classify elements in pdf pages", "convert pdf to markdown or html", "run ocr on scanned pdf documents", "determine reading order of pdf elements", "self-host a pdf layout analysis api", "translate pdf documents automatically"], "what_it_is": "A Dockerized microservice by HURIDOCS that performs PDF document layout analysis, OCR, and element segmentation/classification (texts, titles, tables, pictures, formulas). It exposes a Gradio web UI and a FastAPI REST API, and can convert PDFs to Markdown/HTML with translation via Ollama.", "when_to_avoid": ["you only need simple text extraction without layout segmentation", "you cannot run Docker containers in your environment", "you need a lightweight client-side PDF parser"], "when_to_choose": ["you need a self-hosted REST API or web UI for PDF layout analysis and OCR", "you want PDF-to-Markdown/HTML conversion with reading order preserved", "you have Docker and optionally a GPU for faster inference"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pdf-document-layout-analysis", "repo": "huridocs/pdf-document-layout-analysis", "role": "main", "score": 82}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.539951+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:42:41.701221+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a90adf7cb91c889da7c79196656b27ac88f7c138428559eea250f4f935684a4", "fetched_at": "2026-08-28T04:04:27.539951+00:00", "kind": "readme", "missing": false, "url": "https://github.com/huridocs/pdf-document-layout-analysis"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.539951+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:42:41.701221+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a90adf7cb91c889da7c79196656b27ac88f7c138428559eea250f4f935684a4", "fetched_at": "2026-08-28T04:04:27.539951+00:00", "kind": "readme", "missing": false, "url": "https://github.com/huridocs/pdf-document-layout-analysis"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:42:41.701221+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a90adf7cb91c889da7c79196656b27ac88f7c138428559eea250f4f935684a4", "fetched_at": "2026-08-28T04:04:27.539951+00:00", "kind": "readme", "missing": false, "url": "https://github.com/huridocs/pdf-document-layout-analysis"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.539951+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.539951+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.539951+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:42:41.701221+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a90adf7cb91c889da7c79196656b27ac88f7c138428559eea250f4f935684a4", "fetched_at": "2026-08-28T04:04:27.539951+00:00", "kind": "readme", "missing": false, "url": "https://github.com/huridocs/pdf-document-layout-analysis"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.539951+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.539951+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:42:41.701221+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a90adf7cb91c889da7c79196656b27ac88f7c138428559eea250f4f935684a4", "fetched_at": "2026-08-28T04:04:27.539951+00:00", "kind": "readme", "missing": false, "url": "https://github.com/huridocs/pdf-document-layout-analysis"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.539951+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.539951+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.539951+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:42:41.701221+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a90adf7cb91c889da7c79196656b27ac88f7c138428559eea250f4f935684a4", "fetched_at": "2026-08-28T04:04:27.539951+00:00", "kind": "readme", "missing": false, "url": "https://github.com/huridocs/pdf-document-layout-analysis"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.539951+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.539951+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:42:41.701221+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a90adf7cb91c889da7c79196656b27ac88f7c138428559eea250f4f935684a4", "fetched_at": "2026-08-28T04:04:27.539951+00:00", "kind": "readme", "missing": false, "url": "https://github.com/huridocs/pdf-document-layout-analysis"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:42:41.701221+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a90adf7cb91c889da7c79196656b27ac88f7c138428559eea250f4f935684a4", "fetched_at": "2026-08-28T04:04:27.539951+00:00", "kind": "readme", "missing": false, "url": "https://github.com/huridocs/pdf-document-layout-analysis"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:42:41.701221+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a90adf7cb91c889da7c79196656b27ac88f7c138428559eea250f4f935684a4", "fetched_at": "2026-08-28T04:04:27.539951+00:00", "kind": "readme", "missing": false, "url": "https://github.com/huridocs/pdf-document-layout-analysis"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:42:41.701221+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a90adf7cb91c889da7c79196656b27ac88f7c138428559eea250f4f935684a4", "fetched_at": "2026-08-28T04:04:27.539951+00:00", "kind": "readme", "missing": false, "url": "https://github.com/huridocs/pdf-document-layout-analysis"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 92, "longevity": 60, "rhythm": 83}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 849, "days_push": 51, "days_rel": 119, "gap_med": 6, "n_releases_24m": 24}, "score": 82, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}