Why your PDFs look wrong and how to fix the workflow
I spent about three years running a content team that produced roughly 400 PDF assets a month. That number includes whitepapers, lead magnets, slide decks, and one-off guides we handed out at events. Most of them came out looking like garbage on the first pass. The reason usually wasn't the content itself. It was the pipeline. The biggest mistake I see people make is treating PDF generation as an afterthought. They write the content in Google Docs or Word, export to PDF, and hope for the best. Typography gets flattened. Images get compressed to oblivion. The file size balloons because every embedded asset is stored at full resolution with no optimization. You end up with a 40MB PDF that takes ten seconds to load on mobile. Nobody downloads that. It just sits there.
Content Creation Pdf Best
The closest thing we ever had to a reliable standard was a structured InDesign workflow paired with a dedicated export preset. I know InDesign sounds overkill for someone making simple guides, but the difference between a rushed export and a purpose-built one is measurable. File sizes dropped from an average of 35MB down to about 4MB for the same document. Download rates went up because the file actually loaded. That's not theoretical. We tracked it. Here is how I actually approached it. You pick your tool based on the volume you're producing. If you're making fewer than ten PDFs per month, Canva or even Pages will work fine. If you are pushing out more than that consistently, you need something that supports batch exports and predefined templates. I ended up using a combination of InDesign for print-quality assets and a Node.js script with Puppeteer for anything web-first. The script let me generate hundreds of personalized PDFs from a single template in under three minutes total. That replaced what used to take our team two hours of manual exports. The export settings matter more than most people realize. You want PDF/X-1a if the file is going to a printer. You want PDF/A if it's an archival document that needs to look the same in twenty years. For regular content downloads, a standard PDF 1.7 with embedded fonts and compressed images gets you the right balance. Don't flatten your layers before exporting. Keep the vector shapes as vectors. Rasterizing everything at 300dpi inflates file size without adding any visual benefit on screen.
Here is a specific problem I ran into that took me two weeks to solve. We were generating PDFs from a React app using jsPDF. Everything looked perfect on desktop. On mobile, half the fonts rendered as Times New Roman and images were missing. The issue was that jsPDF doesn't handle custom web fonts well by default. You have to explicitly embed them, and even then, the font metadata can conflict with the PDF specification. The workaround was switching to PDFKit instead, which handles font embedding more gracefully, and then running every output through a preflight check using Acrobat Pro's export logic. It added about 30 seconds per batch, but it eliminated the rendering issues entirely. I still remember the frustration of watching a client open a PDF on their phone and see a completely broken layout while everything looked fine in the browser preview. If you are building PDFs programmatically, don't skip the preflight step. Tools like PDFtk, Ghostscript, or even the built-in preflight palette in Acrobat can catch compression issues, missing fonts, and color profile mismatches before the file ever reaches a user. Running a quick Ghostscript optimization command after generation typically shaves another 30 to 50 percent off file size without visible quality loss. The command itself is straightforward and takes about five minutes to set up once. One counter-intuitive thing about PDF creation that nobody talks about enough is that higher resolution does not always equal better quality on screen. A PDF with images at 300dpi will look no sharper on a monitor than one at 150dpi, but it will be twice the file size. Screens don't render past 72 to 96dpi anyway, so anything above 150dpi is wasted data for digital distribution. The only time you need 300dpi is if the PDF will be printed. Set your target resolution based on the intended output, not some default setting your tool provides.
Get the Full Details
Another thing that trips people up is font licensing. You can legally embed fonts in a PDF, but not every font license allows it. Some free fonts explicitly prohibit embedding, and embedding them anyway can create legal exposure. I learned this the hard way when a client's attorney flagged a publicly distributed PDF that used a font with a restricted license. The fix was switching to a fully open-source font stack like Inter or Source Sans. It took ten minutes to swap and removed the entire risk. Always check the license before you embed. For people who want something fast and functional without learning InDesign or writing scripts, there are solid alternatives. Adobe Express handles basic PDF exports with decent quality control. Affinity Publisher is a one-time purchase that produces professional output and doesn't require a subscription. For programmatic generation at scale, Puppeteer with a headless Chromium instance is probably the most reliable option right now. It gives you control over the DOM before the PDF is rendered, which means you can adjust styles dynamically and get pixel-perfect results without wrestling with a layout engine. The honest limitation is that no single tool handles every use case well. If you need dynamic personalization at scale, InDesign is the wrong choice. If you need print-ready color separation, Canva won't cut it. Pick the tool for the job, not the one that sounds easiest. And always test your output on an actual mobile device before you publish the link. What looks fine in a browser preview often breaks in ways you didn't expect.