Back to News
Advertisement
kkbyatnal about 5 hours ago 16 commentsRead Article on extend.ai

DE version is available. Content is displayed in original English for accuracy.

We're open-sourcing 14 components & examples today for PDF, DOCX, and XLSX viewers, plus bounding box citations, file upload, e-signature, and more. It's MIT licensed and fully customizable.

Demo video here: https://share.extend.ai/kRmSGKRF

When we started, we tried every file viewer and document component library we could find. Unfortunately, none of them had all the functionality (and polish) that we wanted, so we ended up building our own for https://extend.ai/. It was only ever meant to be internal, but enough customers kept asking for it that we decided to open source it.

It's useful for building document processing agents, real-time user facing document intake flows, or all kinds of internal tooling.

We naively thought this would be a solved problem. Turns out, making PDF/XLSX/DOCX viewers that work at scale is not trivial...we use and maintain it for Extend ourselves, so we've fixed a lot of edge cases that came up while running millions of pages / day through our own system. Our hope is that with our resources + community support, it'll keep getting better over time.

Advertisement

⚡ Community Insights

Discussion Sentiment

90% Positive

Analyzed from 436 words in the discussion.

Trending Topics

#xlsx#react#pdf#docx#etc#parser#components#page#web#thanks

Discussion (16 Comments)Read Original on HackerNews

dvtabout 1 hour ago
Super cool. Working on a local AI tool specifically for document workflow automation (where context = screen/web/folders/files), and this could come in super useful. I do most of the PDF/DOCX/etc. parsing natively in Rust, but having a nice way to see the output without spinning up Word or Powerpoint is a huge leap.

Thanks for releasing publicly.

andrewlu0about 1 hour ago
nice - did you write a custom parser for PDF/DOCX? we wrote one for XLSX after running into event loop issues with sheet JS
dvtabout 1 hour ago
Using lopdf[1] for PDF parsing, rtf-parser[2] for RTF, calamine[3] for XLSX, and I'm sure you know that DOCX/PPTX/etc. is basically just a zip file of XML + text. The LLM cares about textual data (which just gets moderately cleaned up post-extraction), so I (thankfully) didn't have to deal with rendering. But showing a preview or end-result to a user would be a huge plus, so I can see myself using your library.

[1] https://github.com/J-F-Liu/lopdf

[2] https://github.com/d0rianb/rtf-parser

[3] https://github.com/tafia/calamine

spankaleeabout 3 hours ago
These should really be web components. Leaving out every framework other than React is really bad for the web.
andrewlu0about 2 hours ago
thats fair and definitely something we can try supporting in the future. we started with React because of how familiar models are with shadcn and tailwind

we hope this can be useful for people building in React though!

egeozcanabout 1 hour ago
Why doesn't it mention anywhere that they are React components?
andrewlu0about 1 hour ago
we'll try to make it more clear on the landing/introduction page!
CraigJPerryabout 2 hours ago
Those bounding box demos are decent.

By quirk of fate i've spent the past 2 days prototyping some stuff on pdfjs. Just trying to figure out a game plan for handling bounding boxes in the face of page zooming, different resolutions etc. etc. I can't see it mentioned whether the components are virtualising pages (as in reusing dom elements as document pages scroll by). I guess i just learned what i'll be exploring tomorrow then...

andrewlu0about 2 hours ago
yes - the pdf/docx viewer use react-virtual to virtualize the pages

the zoom should work with the bounding box highlights, we're working on adding rotation support

hobofanabout 1 hour ago
Thanks, that looks awesome! We were looking to add DOCX and XLSX preview to our app, and were planning to do server-side conversion to PDF (which seems to be what most other apps resort to) due to the lack of good libraries to render it, and this is exactly what we were looking for! :)
andrewlu0about 1 hour ago
thanks! would love to get your feedback

i can't promise its visually 1:1 with Word/Excel but its pretty close on the corpus we tested with

warthogabout 3 hours ago
really like these - curious how the xlsx editor and viewer is built in that what kind of headless spreadsheet?

could not have been easy

andrewlu0about 3 hours ago
Hi! I'm one of the engineers at Extend that worked on this - one of our other engineers created a Rust XLSX/XLS parser that we ported to WASM to our @extend-ai/react-xlsx package which handles the rendering/charts. It exposes some hooks so users can use their own components for the toolbar
drivingmenutsabout 2 hours ago
How much was actual engineering and how much was telling an AI what to do?
KolmogorovCompabout 2 hours ago
> This page could not load

On mobile Safari…

andrewlu0about 2 hours ago
hm seems to look ok on mine - is this on the root page?