I'm trying to figure out the best way to generate a PDF based on user input in my application. Currently, I'm using a tech stack that includes React, FastAPI, and Postgres. The workflow I have in mind is that users will configure various options for a product, and after they're done, they should be able to download a PDF containing their selections. Although I can generate the PDF without any issues, I'm struggling to make it look professional. Can coding help enhance the appearance of the PDF, or should I consider using a template instead? Any advice would be greatly appreciated!
4 Answers
Another approach is to create a webpage styled with CSS and a print media query. This way, users can print the webpage directly. Just be aware that different browsers handle printing differently. You could also generate a PDF using a library for this, and if you want more control, consider setting up a tool like Playwright to visit the page and create the PDF. You could even add a query parameter to adjust the display for PDF generation, using a serverless function for on-demand creation.
If you're looking for the easiest way, consider using a headless browser to print the PDF. You can utilize standard CSS, which means you can design the PDF similarly to how you design your website, making it pretty straightforward.
Honestly, my advice would be to hire a professional designer to create a template. With a basic understanding of how PDFs work, you can fill in the necessary information without compromising on design. Keep things simple; you don’t need to make the PDF too complex, like compression or other features. Also, look into preserving the original design in a user-friendly format.
You have a bunch of options! You could use any PDF creation library available for your tech stack. For example, you can leverage Typst combined with WASM in your JavaScript, or even wrap a LaTeX binary in some RPC framework. Another option is to use Pandoc Server. Just keep in mind that if you go with Typst or LaTeX, there's a potential security concern since users might inject harmful code if they're able to figure out how your API operates.
Thanks for the suggestions! I'll definitely look into those options.
Absolutely, Playwright makes it super easy to implement!