Skip to main content

Download PDFs from ePapyrus StreamDocs viewers

Project description

streamdoc-dl

Slop coded. PRs welcome.

Download PDFs from ePapyrus StreamDocs viewers.

StreamDocs is an HTML5 document viewer by ePapyrus used on Korean government sites (standard.go.kr, e-book.scourt.go.kr, etc.) that renders PDFs as page images in-browser with download disabled. This tool reconstructs the PDF by downloading page images and text data, producing a searchable PDF with selectable text.

Install

pip install streamdoc-dl

Usage

streamdoc-dl 'https://www.standard.go.kr/streamdocs/view/sd;streamdocsId=1234567890'

Output filename is auto-detected from the server metadata.

Options

streamdoc-dl URL [-o OUTPUT] [-z ZOOM] [-j JOBS] [--font FONT] [--compress [LEVEL]] [--tor]
Option Default Description
-o auto Output PDF path
-z max Zoom level: max for highest quality, or a number (100=native, 200=2x, 300=3x)
-j 4 Concurrent download threads
--font auto Path to TTF font for text layer
--compress off Compress with Ghostscript (screen/ebook/printer/prepress)
--tor off Route traffic through Tor (SOCKS5 proxy on 127.0.0.1:9050)
--no-strip-watermark off Keep watermark characters in the text layer

Compression

Use --compress to reduce output size via Ghostscript (gs must be installed):

streamdoc-dl URL --compress          # default: ebook quality
streamdoc-dl URL --compress printer  # higher quality

Font auto-detection

The invisible text layer needs a Korean-capable font for search/copy. The tool tries:

  1. NanumGothic from common system paths
  2. fc-match :lang=ko (Linux with fontconfig)
  3. Fallback to reportlab built-in CID font (HYSMyeongJo-Medium)

To use a specific font: --font /path/to/font.ttf

Tor

Use --tor to route all traffic through Tor (must be running on port 9050):

tor &
streamdoc-dl URL --tor

Resume

Interrupted downloads are automatically resumed. Page images and text are cached as they download. Re-run the same command to continue from where it left off. The cache is cleaned up after the PDF is built.

Cache location:

  • Linux: $XDG_CACHE_HOME/streamdoc-dl/ or ~/.cache/streamdoc-dl/
  • macOS: ~/Library/Caches/streamdoc-dl/
  • Windows: %LOCALAPPDATA%\streamdoc-dl\

How it works

  1. Fetches document metadata from the StreamDocs v4 API
  2. If the server allows direct download, fetches the original PDF
  3. Otherwise, downloads page images and text data concurrently
  4. Fixes the corrupted first byte on each image (server-side anti-scrape)
  5. Builds a PDF with image backgrounds and invisible text overlay

License

GPL-3.0-or-later

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

streamdoc_dl-0.2.3.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

streamdoc_dl-0.2.3-py3-none-any.whl (19.7 kB view details)

Uploaded Python 3

File details

Details for the file streamdoc_dl-0.2.3.tar.gz.

File metadata

  • Download URL: streamdoc_dl-0.2.3.tar.gz
  • Upload date:
  • Size: 19.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for streamdoc_dl-0.2.3.tar.gz
Algorithm Hash digest
SHA256 db7ea420e8543e3a30adc35b0e8338372cc3b588c052ae8ec22fecda2629e1af
MD5 33b19ae3a580856cbfc715292b75a0e1
BLAKE2b-256 d77b33193951732c16d2cb5969bdd471c9c6423bd7c83478028f54c43dc6147e

See more details on using hashes here.

File details

Details for the file streamdoc_dl-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: streamdoc_dl-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 19.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for streamdoc_dl-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6d2eb6bfe26682d6d263fba5297a5c58522363f5f18dcdd2ff85276c859c1295
MD5 e62f85f12025635c2ee5ce7ab29d105c
BLAKE2b-256 d640d6ffc945b75134ddb1be239a82bd33b860f1cf1c25101613a92d1462118c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page