Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
YouTube Security VideosGoogle Chrome: Unfinished Projects: Solange’s Public Sculpture(21.09.2026 um 17:02 Uhr)
Windows Tipps & SecurityBlurry or pixelated video in Microsoft Teams(21.09.2026 um 14:34 Uhr)
Sicherheitslücken (CVE)USN-8791-1: Ghostscript vulnerability(21.09.2026 um 14:51 Uhr)
Sicherheitslücken (CVE)USN-8792-1: Memcached vulnerability(21.09.2026 um 15:02 Uhr)
Sichere ProgrammierungI stopped rewriting the same Electron boilerplate — so I packaged it(21.09.2026 um 17:28 Uhr)
YouTube Security VideosGoogle Chrome: Unfinished Projects: Solange’s Public Sculpture(21.09.2026 um 17:02 Uhr)
Windows Tipps & SecurityBlurry or pixelated video in Microsoft Teams(21.09.2026 um 14:34 Uhr)
Sicherheitslücken (CVE)USN-8791-1: Ghostscript vulnerability(21.09.2026 um 14:51 Uhr)
Sicherheitslücken (CVE)USN-8792-1: Memcached vulnerability(21.09.2026 um 15:02 Uhr)
Sichere ProgrammierungI stopped rewriting the same Electron boilerplate — so I packaged it(21.09.2026 um 17:28 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

I kept rebuilding the same PDF plumbing — so I turned it into one API

Every app eventually needs documents. Invoices. Reports. Exports. Parsing whatever a user uploads. And every single time, you end up doing the same unglamorous work: wiring up headless Chrome or wkhtmltopdf, fighting font installs,…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!

Every app eventually needs documents. Invoices. Reports. Exports. Parsing whatever a user uploads. And every single time, you end up doing the same unglamorous work: wiring up headless Chrome or wkhtmltopdf, fighting font installs, babysitting it under load, and then writing a brittle parser to get data back out of PDFs.



I did this three times across different projects before admitting it should just be infrastructure. So I built Inkspan — one API for the whole document lifecycle: generate, manipulate, and extract.






The three things it does



Generate — HTML, a template + JSON data, or Markdown → pixel-faithful PDF.

Manipulate — merge, split, compress, watermark, rasterize to images, fill AcroForm fields.

Extract — pull text and tables into structured JSON.



Authenticate with a key, POST to an endpoint, get a document (or JSON) back. No rendering fleet to run.





Generating a PDF from a template



The endpoint I use most is generate/template — pass an HTML template with {{ }} placeholders and a JSON data object:




import requests

res = requests.post(
"https://api.inkspan.dev/v1/generate/template",
headers={"X-API-Key": "ink_live_..."},
json={
"template": "<h1>Invoice {{ number }}</h1>"
"{% for item in items %}<p>{{ item.desc }}: ${{ item.amt }}</p>{% endfor %}"
"<h3>Total: ${{ total }}</h3>",
"data": {
"number": "INV-1042",
"items": [{"desc": "API Pro Plan", "amt": 49}, {"desc": "Overage", "amt": 12}],
"total": 61,
},
},
)
open("invoice.pdf", "wb").write(res.content)






That's the whole thing. No Chromium in your container, no libpango in your Dockerfile.






The part I actually care about: honest extraction



Parsing PDFs is famously unreliable, and my real gripe with existing tools is that they return confident-looking garbage on a document they couldn't actually read. So Inkspan's extraction endpoints return a confidence score and a review_recommended flag:




res = requests.post(
"https://api.inkspan.dev/v1/extract/tables",
headers={"X-API-Key": "ink_live_..."},
files={"file": open("report.pdf", "rb")},
)
print(res.json())
# {
# "table_count": 1,
# "tables": [{"page": 1, "rows": [["Item","Qty","Price"], ["Widget","5","$10"]]}],
# "confidence": 0.95,
# "review_recommended": false
# }






Born-digital PDFs (anything generated by software — most invoices, statements, exports) extract cleanly and score high. When confidence is low, you get told to review it rather than silently shipping wrong data into your database. That single design choice has saved me more headaches than any accuracy benchmark.






How it's built



Nothing exotic, deliberately:





  • FastAPI on Railway for the API.


  • WeasyPrint for HTML→PDF, PyMuPDF + pypdf for manipulation and extraction.


  • Supabase for API keys and usage metering.

  • Usage-based billing so it scales with what you actually use.



The value isn't a novel algorithm — it's that you don't have to run and maintain any of this yourself.






Try it



There's a free tier (100 documents/month), and signup is self-serve — you get a key on the spot at inkspan.dev. It's also on RapidAPI if that's your preferred billing.



I'd genuinely like feedback on the API design — especially the extraction confidence model, and which document operations you'd want next. What's the PDF task you're tired of rebuilding?

Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten I kept rebuilding the same PDF plumbing — so I turned it into one API

Thematisch verwandte Begriffe: kept, rebuilding, same, plumbing · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-94393 | When a user creates or edits a report inside an event, MISP can identify…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick