September 12th, 2024

Show HN: SnazzyPDF – Convert Any JSON Data to Beautifully Formatted PDFs

SnazzyPDF converts JSON data into PDFs without configuration, offering a free plan and paid options. It features an advanced layout engine, prioritizes data security, and allows customization for headers.

Read original articleLink Icon
Show HN: SnazzyPDF – Convert Any JSON Data to Beautifully Formatted PDFs

SnazzyPDF is a service that allows users to convert JSON data into professionally formatted PDF documents without requiring any initial configuration. Users can send their JSON data to the API or use a web interface for manual conversions. The platform features an advanced layout engine capable of handling complex data structures, ensuring organized and clear PDF outputs. SnazzyPDF offers flexible customization options, allowing users to start with basic settings and incrementally adjust them as needed. The service provides various pricing plans, including a free option that allows for the creation of up to 50 pages per month, with limitations on file size and the number of pages per PDF. Paid plans offer increased limits and additional features such as customizable headers and customer support. The service prioritizes data security, ensuring that user data is not shared with third parties and that generated PDFs are not stored. SnazzyPDF does not utilize AI for PDF generation, relying instead on a rule-based system for consistent output. Users can test the API with sample JSON data under the free plan, and technical documentation is available for all users.

- SnazzyPDF converts JSON data to PDFs without initial configuration.

- Offers a free plan with limitations and several paid plans for increased features.

- Advanced layout engine handles complex data structures effectively.

- Data security is prioritized, with no third-party sharing or storage of PDFs.

- Customization options are available for headers and footers in paid plans.

Link Icon 6 comments
By @xupybd - 8 months
I think this is great but you might need to think about your point of difference. I suspect you have a product here but it might need some refining.

I asked Claude to create me something to do this. It worked first go.

import json from reportlab.lib.pagesizes import letter from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph from reportlab.lib.styles import getSampleStyleSheet from reportlab.lib import colors

def create_pdf_from_json(json_file, pdf_file): # Read JSON data with open(json_file, 'r') as file: data = json.load(file)

    # Create PDF document
    doc = SimpleDocTemplate(pdf_file, pagesize=letter)
    elements = []

    # Add title
    styles = getSampleStyleSheet()
    elements.append(Paragraph("JSON Data Report", styles['Title']))
    elements.append(Paragraph("\n", styles['Normal']))

    # Create table data
    table_data = [["Key", "Value"]]
    for key, value in data.items():
        table_data.append([str(key), str(value)])

    # Create table
    table = Table(table_data, colWidths=[200, 300])
    table.setStyle(TableStyle([
        ('BACKGROUND', (0, 0), (-1, 0), colors.grey),
        ('TEXTCOLOR', (0, 0), (-1, 0), colors.whitesmoke),
        ('ALIGN', (0, 0), (-1, -1), 'CENTER'),
        ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
        ('FONTSIZE', (0, 0), (-1, 0), 14),
        ('BOTTOMPADDING', (0, 0), (-1, 0), 12),
        ('BACKGROUND', (0, 1), (-1, -1), colors.beige),
        ('TEXTCOLOR', (0, 1), (-1, -1), colors.black),
        ('ALIGN', (0, 0), (-1, -1), 'CENTER'),
        ('FONTNAME', (0, 1), (-1, -1), 'Helvetica'),
        ('FONTSIZE', (0, 1), (-1, -1), 12),
        ('TOPPADDING', (0, 1), (-1, -1), 6),
        ('BOTTOMPADDING', (0, 1), (-1, -1), 6),
        ('GRID', (0, 0), (-1, -1), 1, colors.black)
    ]))

    elements.append(table)

    # Build PDF
    doc.build(elements)
if __name__ == "__main__": create_pdf_from_json("input.json", "output.pdf")
By @godzillabrennus - 8 months
Neat but as others are saying this is for a technical audience and there is a lot of other options for this.

I could see some devs opting to use an open source software version and electing to host with your cloud hosting when devs do not want to bother keeping it securely hosted.

Small market though. Better to create a bunch of freemium sites to help normies do things with pdfs like convert them to docx or other image types… normies pay a fee to do a bunch of them, a big one, or to unlock a password protected one…

By @sylviangth - 7 months
I checked it out and it looks quite cool. I’m curious what the use cases for this are beyond invoice generation?
By @2Gkashmiri - 8 months
Is there any agpl compatible Python library or a product that creates PDF from json like this but has a wyswig PDF layout editor, like an invoice format builder ?
By @RadiozRadioz - 8 months
Looks nice, well done.

Though I worry about the narrowness and "whip-up-ability" for the price and target market. It's a small enough featureset in a domain that skews technical, many would be inclined to template an HTML table to wkhtml2pdf and call it a day. Maybe they'd open source it after. I suppose you're aiming for the people who wouldn't do that, but would still expend the effort of integrating with an external HTTP API (and paying monthly for it)

I know a measure of a project's usefulness is "if a HN commenter says they could make it in a weekend but haven't, you've got something!", so maybe I'm wrong.

P.s. 50 pages / 1Mb per PDF is ludicrously far too small for a business tier.