Generating PDF Invoices from Word Templates with officeParser

Last week I shared a demo ("Generating PDFs from Word Templates with officeParser") that made use of the awesome officeParser open source library. That demo was a simple "customer report" web app that took custom data and a Word template. Once the form was submitted, the library converted tokens in the Word template to real data and output a PDF. I decided to build another demo using the library, this time on the server with a simple Node.js script. As I mentioned previously, this new feature mimics Adobe’s Document Generation API. At the time I wrote my blog post, the library just supported simple transformations. So given “ in your Word template, if you passed... more →
Posted in: JavaScript

Generating PDFs from Word Templates with officeParser

I’ve been singing the praises of the officeParser library for a while. It’s an open source JavaScript library that can parse, extract, and convert between PDFs and Office documents, as well as OpenOffice, ePub and more. My demos have all focused on client-side examples but obviously the library would work great in a server side workflow as well. I haven’t worked at Adobe for years now, but I still get strangely excited working with documents. I’ll just add that to the long list of reasons I’m a big nerd. A few weeks ago, I reached out to Harsh Ankur about an idea inspired by Adobe’s Document Generation API. This was probably my favorite API in their suite of... more →
Posted in: JavaScript

Building the Unicorn-themed app of my dreams with TinyJS

Everyone likes to talk about light versus dark theme while no one is addressing the real need for our users – a proper unicorn theme. I mean, take a look at this beauty: This is Uninote, a desktop note taking application that – well – takes notes. You create notebooks, write notes, and that’s it. No AI features. Nothing complex, just a note taking app. I’ve had a love/hate relationship with these apps for years. I was a huge Evernote fan until it went to poo. I currently use OneNote and… it’s ok but I wish it was better. And yes, before folks chime in with suggestions, I’m aware I’ve got choices, but I "share" note access with... more →
Posted in: JavaScript

Adding a PDF Display to Eleventy

This will be a short one. I’ve talked about embedding PDFs on web pages for probably close to ten years now. Blame Adobe. Blame me being a nerd and finding this stuff interesting. Blame whoever. While I’ve blogged about the topic, I’ve also actually done that on my site here, in a variety of different ways. A while back I realized I wasn’t being consistent with how I did… "stuff" here, like call outs, Youtube links, etc. I started a guide doc so I’d have a quick way to remember what I did last time, and be more consistent. One item on there I had left as "figure it out later" was proper PDF embedding. This week I finally nailed that down.... more →
Posted in: JavaScript

Links For You (10/19/26)

Wowza – I’m like nearly a month late on this. This is where I’d try to come up with a good excuse, but I think if I just randomly point around at things and said… "life" most of you would completely understand where I’m coming from. It’s been a difficult few months for myself, and for nearly every person I know. This week I’m going to try focus on the positive and the things that make me smile, and I hope all my lovely readers can do the same! Make Music, Not War First up is the appropriately named Hyperblam, a music making tool that lets you use a declarative language to create sick beats as the kids say. What does that look like? Here’s... more →
Posted in: JavaScript

Adding Google Auth to TinyJS

A few days ago I posted about my experience playing around with TinyJS. This is a very light "web to desktop app" platform for – well – building desktop apps. Its simplicity and similarity to PhoneGap (at least for the desktop) has got me interested in seeing what I can build with the project. One of my ideas would be improved with a login system so I naturally looked into adding a "Login with Google" feature. While this was mostly straightforward, I ran into some oddities and figured I’d share it here. I went into this exploration with a basic idea of how I’d approach it: Create an app in the Google Cloud console to represent my app, getting the client... more →
Posted in: JavaScript

Tiny Apps with TinyJS

About a year ago, I was still running my live stream (Code Break) and my final three streams all covered one topic – building desktop applications with non-native code. I covered Tauri (HTML on the front, Rust on the back) and Flet (all Python). Recently I came across another option, tinyjs. TinyJS (technically the name is "tinyjs" but I can’t make myself use the lowercase in my writing like that 😉 is a lot like PhoneGap/Apache Cordova. Your application is the system web view shipped along with the ability to make system calls via a bridge to txiki.js. This bridge gives you full access to the file system and more, like any other native app. Unlike PhoneGap, this is just... more →
Posted in: JavaScript

Adding My Latest CodePens to My Blog

I’ve been a fan of CodePen for many, many years, and it’s one of the few services I spend money on to help support. A few months back, they released an entirely new version that dramatically improved the service (CodePen 2.0) and it just made me more happy I was a supporter. Just a few days ago they announced more changes including a full API. I thought it would be fun to add a display of my recent pens. Yes, I thought that would be fun, because that’s the kind of nerd I am. Adding Dynamic Content to a SSG It has been a very long time since I blogged about anything related to static site generators. There’s no particular reason for that, but I figure this is a good time... more →
Posted in: JavaScript
1 2 3 … 117