13 ms·
Show HN: Pdf.js Express – PDF annotation, e-signatures, and form filling
Hi HN,
Nick here. We're super excited to officially launch PDF.js Express [1].
PDF.js Express wraps a modern React UI around the PDF.js rendering engine to enable PDF annotation, form filling, and signing inside your web app. We've also made some improvements to PDF.js text search, and taken a different approach to how the viewer uses the PDF.js rendering API, resulting in sharp graphics at any zoom magnification [2].
Based on our research, more than 70% of those who try to implement these features on top of PDF.js find it too difficult or time-intensive [3]. For those who are successful, supporting the new functionality is also challenging. To help these developers in achieving their short-term goals, and to support them as their needs evolve, we built PDF.js Express.
Check out the demo and let us know what you think or if you have any questions [4].
If you're helping fight COVID-19, it's free [5].
[1] https://pdfjs.express/blog/introducing-pdfjs-express https://pdfjs.express/blog/introducing-pdfjs-express
[2] https://pdfjs.express/pdfjs-vs-express https://pdfjs.express/pdfjs-vs-express
[3] https://pdfjs.express/blog/build-vs-buy https://pdfjs.express/blog/build-vs-buy
[4] https://pdfjs.express/demo https://pdfjs.express/demo
[5] https://pdfjs.express/blog/pdfjs-express-free-to-those-fighting-covid-19 https://pdfjs.express/blog/pdfjs-express-free-to-those-fight...
- williamstein 7y agoWow, if only this was open source...
- deleted 7y ago[deleted]
- coffeecat 7y agoYes, this announcement had me momentarily very excited until I realized that this is a proprietary offshoot and not a feature that had been added to PDF.js itself.
- robocop2018 7y agoIt's open source.
- williamstein 7y agoTheir website and marketing of this fact (is it a fact?) is very confusing or misleading. The comparison at https://pdfjs.express/pdfjs-vs-express https://pdfjs.express/pdfjs-vs-express says "PDF.js is an open-source PDF library that was created by Mozilla in 2011 to let you open and render PDFs in web browsers using JavaScript. PDF.js Express is a fully-featured commercial PDF.js viewer with a modern and customizable UI." I would really like to know whether or not "PDF.js Express" is open source. Why? Because I've done a lot of work on react + pdf.js already (for a latex editor), and it's been high on my todo list to add annotation features. So PDF.js express significantly overlaps with something I'm very seriously planning to do...
- williamstein 7y agoEvidently I should clarify that by "open source", I mean "released under an OSI approved license" (https://opensource.org/licenses https://opensource.org/licenses). Maybe robocop2018 means "open source" in the sense of "there is possibly minified non-human readable source code that you can look at under a very restrictive non-OSI license"?
- niknikson 7y agoThank you for your feedback and question. My apologies if it’s unclear. The source code for the UI is available on GitHub [1], but is minified in the download package for efficiency. Note that even though the code is "open source" in that repo, we still have a custom license [2]. [1] https://github.com/PDFTron/webviewer-ui https://github.com/PDFTron/webviewer-ui [2] https://github.com/PDFTron/webviewer-ui/blob/6.2/LICENSE https://github.com/PDFTron/webviewer-ui/blob/6.2/LICENSE
- detaro 7y agoSo which is it? robocop2018 is claiming it's AGPL/commercial dual-licensed, but you say it just has the custom license and that's the only license in the repo?
- battery_cowboy 7y agoDo you just use the open source PDF.js engine or do you contribute back to the project with fixes and features?
- robocop2018 7y agoIt's an extension of pdf.js, not a fork.
- niknikson 7y agoOur intention with PDF.js Express is to provide a solution that meets a market need for a PDF.js viewer with out-of-the-box features. Building this viewer that wraps around the PDF.js engine was no small task and we do hope that it will provide some value to developers. With that said, our goal is to grow usage of PDF.js Express and the PDF.js project. Ultimately the more developers we can bring to the platform the better it is for us and for the open-source community. We’ve started by creating articles that should help others get started with vanilla pdf.js: How to Build a PDF.js Viewer in React + Typescript [1] and How to Add Zoom Controls to a PDF.js Viewer [2]. We plan on creating more of these guides and now that we've launched this product, we will be looking to help move the pdf.js project forward. [1] https://pdfjs.express/blog/building-pdfjs-viewer https://pdfjs.express/blog/building-pdfjs-viewer [2] https://pdfjs.express/blog/build-pdfjs-viewer-ui https://pdfjs.express/blog/build-pdfjs-viewer-ui
- transitivebs 7y agoI'm all about the open core business model.. but are you guys affiliated with the core pdf.js team? $440 / month is pretty hard to swallow. I love that you guys included a build vs buy section, but I think it's going to be difficult to land clients at this price point because higher end clients are more likely to choose the build vs buy option. Anyhow, the product itself looks well structured. Congrats & best of luck.
- niknikson 7y agoThanks for the feedback! We are not part of the core pdf.js team. In regards to pricing we found that for some companies creating their own viewer requires a fair amount of upfront resources - after trying to create their own viewers they realized the time to build and maintain was not economical. The other big consideration is the opportunity cost of sinking developer resources into a viewer that is not a core differentiator.
- ipsum2 7y agoIt's super misleading to call yourself "PDF.js Express" then. It sounds like a paid extension to PDF.js. You should rename the product.
- drannex 7y agoRight there with you. This is straight up infringement and confusing for everyone involved. This should not be allowed in the slightest. Highly disingenuous for them to do this.
- robocop2018 7y agoThis is a commercially supported solution so the price is actually not bad ( given alternatives )
- phonon 7y agoSays the employee of the company behind it!
- skratlo 7y agoDoes not support XFA forms
- niknikson 7y agoYes, that's correct. It's not supported by PDF.js [1]. But the good news is that it looks like Adobe is finally moving away from their proprietary XFA format, with the introduction of their forms extension. [1] https://github.com/mozilla/pdf.js/issues/2373 https://github.com/mozilla/pdf.js/issues/2373
- mmckelvy 7y agoRE: the "Extract & parse content" feature, does this mean you can parse and extract data from PDF documents like bank statements or invoices?
- niknikson 7y agoWe can extract text and form data -- we'll try to get some documentation around that in the next week or so.
- saradhi 7y ago"can" - easier said than done, especially tables. I don't see it in the Demo. Did I miss it ?!
- robocop2018 7y agoI don't think this solution is doing what you are looking for. To detect tables reliably in PDF you need some heavy-duty AI like https://www.pdftron.com/pdf-tools/pdf-table-extraction/ https://www.pdftron.com/pdf-tools/pdf-table-extraction/
- konfuzio 7y agoHi mmckelvy, Co-Founder of konfuzio.com here. If you are looking for a tool to extract information from documents and download results via API or CSV ping me. You can train your custom AI Model using our PDF Annotation Tool. There is no coding required. Using your documents as training data you can go live within a few hours or use our pre-trained models. We don't have pricing plans on our homepage, as we mainly focus on large enterprises at the moment. But I would love to hear your feedback. Best Chris
- phonon 7y agoThe form fill demo only prints a bitmap. Is that intentional? The quality is completely unacceptable.
- niknikson 7y agoYes, unfortunately the printing is done with a bitmap because of the lack of browser APIs to print scalable canvas content. It looks like our default print quality is a bit on the low side though, so we'll probably change that. You can use the API to increase the quality as well https://pdfjs.express/api/WebViewerInstance.html#setPrintQuality__anchor https://pdfjs.express/api/WebViewerInstance.html#setPrintQua..., for example instance.setPrintQuality(2).
- phonon 7y agoWell, capturing a 72 dpi screenshot and converting to JPEG (which more or less seems to be what you're doing) kind of makes the form filling pointless. Fillable PDF forms exist so they can be printed (or saved and then printed, which I don't think you have an option for either?)
- phonon 7y agoThe right way to handle this would be to work with pdf.js, which has been discussing pdf form printing for quite a long time[1],instead of rolling a canvas screenshot hack. [1]https://github.com/mozilla/pdf.js/issues/7613 https://github.com/mozilla/pdf.js/issues/7613
- antoineMoPa 7y agoThis reminds me of the people who tried to sell Blender a couple of years ago [0]. [0] https://www.blendernation.com/2009/06/11/3dmagix-re-branding-and-selling-the-free-software-blender/ https://www.blendernation.com/2009/06/11/3dmagix-re-branding...
- tyingq 7y agoThis appears to have significant amounts of functionality that the open source pdf.js does not.
- robocop2018 7y agoOr Linux Red Hat, iText Lib ( open sourced but under AGPL) etc. There is tons of open-source out there under commercial terms.
- lorenzhs 7y agoYeah but this isn't open source. It's proprietary with source available, despite what you claim in numerous places throughout this thread. You're building a proprietary product on top of an open source project. You also chose a name that creates the impression that you built the original open source project, which you don't appear to be contributing anything back to. Comparing yourselves to Red Hat has to be a joke, right?
- robocop2018 7y agoNo, Express will be available under dual AGPL/commercial license.
- akdarrah 7y agoHi Nick, Your product looks pretty awesome. It's super polished for your initial launch! Congrats! I'm curious how long it took to build the product and how large your team is? Do you have some initial customers? I'm building a similar paid Javascript Library business (https://www.dropkiq.com/ https://www.dropkiq.com/). I would love to connect if you want to share some ideas? Feel free to shoot me an email if you're interested: adam@dropkiq.com Adam
- eob 7y agoJust wanted to say that both Dropkiq and website to market it look fantastic. Really nice work. If you're ever interested in licensing a version to work with custom grammars (not liquid), I'd be interested! (email: ted AT instabase.com)
- akdarrah 7y agoThanks, Ted! I appreciate the kind words. I'll keep your email handy if we're able to help down the road with non-liquid grammars.
- niknikson 7y agoThanks for your feedback and your questions Adam! PDF.js Express has been in development since early 2019. We have a number of customers signed up and using it in production, and so far the feedback has been really positive. Your website looks great.
- phonon 7y ago> how large your team is? https://github.com/PDFTron/webviewer-ui/graphs/contributors https://github.com/PDFTron/webviewer-ui/graphs/contributors
- phonon 7y agoFIle is here https://registry.npmjs.org/@pdftron/pdfjs-express/-/pdfjs-express-6.2.1.tgz https://registry.npmjs.org/@pdftron/pdfjs-express/-/pdfjs-ex... They bundle both a Apache 2.0 "PDFJS-LICENSE" AND a "PDF.js Express Evaluation License.pdf" which seem to conflict with each other.
- williamstein 7y agoI suspect that the Apache license is meant to only apply to the PDFJS source code, and the "... Evaluation License" applies to the minified/bundled pdfjs express code that's in there (but not actually human readable?). That's my guess.
- phonon 7y agoI think you're right, but how is someone supposed to know which parts go with which? I guess \pdfjs-express-6.2.1\package\public\core\pdfjs is Apache 2.0 and everything else is commercial?
- spankalee 7y agoNicely done! For non-React users (and React users, for that matter), I started working on wrapping PDF.js up into a web component for use in any framework or in plain HTML or Markdown: https://www.npmjs.com/package/pdf-viewer-element https://www.npmjs.com/package/pdf-viewer-element The idea is to make a `<pdf-viewer>` element that's as easy to use as if it were built-in to the browser. As PDF.js Express shows, this is a pretty deep UI and feature area to tackle. My project is incomplete and doesn't have anywhere close to the features. I think complex viewers are one of the ideal use cases for web components though. These components require a lot of work to do well, and we shouldn't have to re-implement them for every framework. The 3D gltf viewer, `<model-viewer>`[1] is another great example. [1]: https://modelviewer.dev/ https://modelviewer.dev/
- 2pointsomone 7y agoI have a startup and we are highly reliant on PDF rendering in our application. But here's the thing, Nik: your pricing model doesn't make sense to me. In general, most PDF SDK models don't make sense. I have searched a lot over the years, and am left consistently disappointed. You charge the same amount to large commercial customers as you do to small startups, who are trying to save every penny. Even though I really value the technology you have built, you have not allowed us to "pay-as-we-go". I am not interested in your trial and the trials of your competitors because you don't allow me to start with a $5/month plan based on volume of usage. And so, we have resorted to writing the wrappers around PDFJS ourselves, slowly and steadily over months and years. Even though we might end up spending the same amount over 2 years by doing these things ourselves, at least we will understand the technology and own it perpetually. Just charge us based on volume, so your revenue can align with our revenue. It will create much larger traction among small developers. If you are not targeting that audience, I understand, but I contend that most people on places like HN are that audience. Be more like Crocodoc (the company Box acquired). I really don't want us to keep reinventing the pieces here because this is not our core competency.
- cl42 7y agoHave you thought of turning your wrappers into a service/SaaS offering? Sounds valuable!!
- spankalee 7y agoOr open sourcing it? This seems like one of those complex-enough areas that having multiple groups and companies contribute to a common good could really pay off for everyone.
- cl42 7y agoYes! +1
- 2pointsomone 7y agoI agree with both of you. Our wrappers are currently very tightly glued to the rest of the product, and have a lot of hacks (hint: PDFJS documentation is not very rich, they have barely touched their documentation since they came out). So what we have is in no good state to release, unfortunately :( But if someone does initiate serious work, we will jump in with our contributions. But to your points: because there is no good open source initiative that does what PDFJS Express does, commercial providers like PDFJS Express and PSPDFKit are able to build pricy SaaS offerings.
- IvanK_net 7y agoI spent about three years building the support for PDF into my graphics editor https://www.Photopea.com https://www.Photopea.com . While other editors "add stuff on top of PDF", Photopea "chews through" each byte of a PDF, and tries to make as much sense of it as possible. You can rewrite the existing text (with the same formatting), edit bézier curves, edit gradient fills. You can edit bitmaps on a pixel level. You can see the parameters as CSS or export it into an SVG. Also, it is free. People open about 150,000 PDF files a month in it, but I hope it will get more popular in the future. Demo PDF: https://www.photopea.com/api/img2/WEBSITE-ZLONIN-uprava.pdf https://www.photopea.com/api/img2/WEBSITE-ZLONIN-uprava.pdf Photopea: https://www.photopea.com#%7B%22files%22:%5B%22https://www.photopea.com/api/img2/WEBSITE-ZLONIN-uprava.pdf%22%5D%7D https://www.photopea.com#%7B%22files%22:%5B%22https://www.ph... (press T and click into the text to edit it)
- Roritharr 7y agoWow. I've just done a couple of things that are very hard or next to impossible with Acrobat DC in Photopea without so much as hitch. Amazing Work!
- osrec 7y agoJust wanted to say thank you for Photopea. It is brilliant!
- lxe 7y agoPhotopea is a masterpiece. Thank you for building this thing.
- andreigaspar 7y agodude.... this is insane
- chirau 7y agoI absolutely love Photopea. Thank you for making it. It's my number 1 go to Photoshop alternative. Any chance you will package it for desktop? It would be great for Linux.
- 7y ago
- longtermd 7y agoThe pricing of 440 USD/month must be an April's joke. It might be worth 9 USD/month compared the many competitors and free solutions.
- martinald 7y agoSome feedback. Website design is poor. You could definitely do with a designer to make it look nicer. $5000ish a year is a weird price point. It's too expensive for a hobbyist or small dev shop, but too cheap for an enterprise to buy (when you consider the time of working on procurement problems you'll experience). You either need to make it cheap, like $200/yr, or much more expensive. Right now you are in no mans land. You also have a * next to limited support on pricing page, but I can't see what that explains. Offering no refunds is strange and your copy comes off passive aggressive about this. Why? As a new service I'd be all about offering full refunds with no questions asked. Most people don't ask for refunds, and you can learn very important information when they ask for one. Terms page is very short and doesn't have a lot of terms I'd expect for a product charging $5k/yr. Don't worry about it not being open source; that's fine.
- ct520 7y agoI agree. As a person with direct experience building and leading top industry products in this field. It feels.. off. Signatures are one thing, but being ESIGN and UETA compliant is another. It's hard for me to in vision the niche this is fulfilling as it does more then pdfjs but not enough IMO to warrant buying/licensing it.
- mkurz 7y agoYes, as a startup you can't afford $375 per month.
- bassdigit 7y ago> Website design is poor. You could definitely do with a designer to make it look nicer. Really, in what way? In my view it's clean and simple. > You either need to make it cheap, like $200/yr, or much more expensive. Right now you are in no mans land. Another unsubstantiated statement. How much market research have you done on PDF libraries? Pricing is a sensitive topic and many factors play a role in it. Too many to be assessed by an armchair expert. > Don't worry about it not being open source; that's fine. Where did OP express any worries about it not being open source?
- deleted 7y ago
- social_quotient 7y agoHow would this compare to something like syncfusion pdf viewer - https://www.syncfusion.com/angular-ui-components/angular-pdf-viewer https://www.syncfusion.com/angular-ui-components/angular-pdf... It handles chopping up the pdf into pieces on the server as well as storage of annotations and some other stuff. We just got done integrating this in to a big MEANS stack app and hit a ton of challenges both client side and server. On the client side we wanted to customize the annotation dialogs which required a ton of hacking.( we upload images and video snippets and role based access to annotations. We wanted to load two PDFs side by side and sync scrolling (Notta). On the server we had to wrap their api in a proxy so we could store annotations in Elastic etc. it was great in a lot of ways but a ton of work in other areas. Generally how do you compare? How are viewer modifications handled? Great job getting the product out the door. This is a great space.
- richardkeller 7y agoThis looks like a fantastic solution. If there were an affordable price point, I would immediately implement this in the edtech platform that we're developing, but the price point puts it completely out of our league for now. (Especially given the exchange rate fluctuations we see as developers in South Africa). Have you by any chance considered offering discounts to: 1. Educational institutions 2. Startups (eg. us) Offering a free tier to startups, or at a discounted rate would allow them to use the product and become entrenched, by which point the full license would become easily affordable. Overall looks like a great solution, and definitely a gap in the market. On a side note, I hit the "Try for Free" button on the home page and got a 404.
- animalnewbie 7y ago> modern react UI. What is an ancient react UI?
- Lev1a 7y agoWhatever was popular >1 month(s) ago.
- ggcdn 7y agoI work in an industry that marks up PDFs extensively (construction) and have wanted to build a bespoke PDF markup tool for a long time. In designing concrete floor slabs, we need to transfer information from our FEA software to a dwg. Currently a blank plan is printed, it’s marked up by hand, and then handed to a drafter to put back into the computer. It’s a very inefficient process. But all the SDKs are stupidly expensive (this one included). It’s really surprising there isn’t something open source, given the importance of PDF markup in many industries and businesses.
- ct520 7y agoWhat's preventing this being done with a ipad, pencil, and a myriad of pdf viewer/markup apps out there?
- ggcdn 7y agoI didn’t clarify that the tool needs to store the information so it can be imported into CAD, rather than just being hand scribbled lines and numbers.
- ct520 7y agoAhh gotcha. This should still be straight forward. Just don’t know of a generic format to export overlays/cordinates. Everyone has a opinion on how this should be done and measured and there are different standards for pdf libraries and print etc. not complicated though.
- ct520 7y agoI almost feel like this should be a product that integrates with industry leading API's and be licensed as a better white label, then get those enterprises into maintenance contract. Lot of companies I have spoken to want to "own" the process all the way through and create a seamless "in their portal experience" for interacting with PDFS. (tagging/signing/SSO/workflow etc)
- lucasverra 7y agoCOngrats Nick ! I've tested the fill pdf demo on latest FF on WIN10. I cann add characters; but cannot remove them with DEL or RETURN keys cc https://ibb.co/zX4LQwL https://ibb.co/zX4LQwL Cheers
- itcrowd 7y agoHi Nick, Congrats on your launch. Just wanted to tell you that there's another service called PDF eXpress that's in use for IEEE conferences to make sure the authors conform to the given template. I know it's not exactly the same name, but might be worth looking into viz. copyright or trademarks. More info on PDF eXpress: https://www.ieee.org/conferences/publishing/pdfexpress.html https://www.ieee.org/conferences/publishing/pdfexpress.html
- andrepd 7y agoAm I missing something? Why should I pay 5000 for a pdf viewer, with features dozens of other pdf viewers have?
- robocop2018 7y agoThe talk is not about pdf viewers but about framework/APIs that developers can use to build all those 'others' solutions. pdfjs.express makes this a piece of cake, you get the source, and companies can outdo competition will less developer $$$ sunk into reinventing the wheel