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)
Thanks for the feedback! You're absolutely right: simple cases like rendering lists, tables or key-value pairs are straightforward and can be done with many different tools without much effort. But the devil is in the details.
Where it gets tricky is handling more complex data structures: deeply nested objects and arrays, different date formats, varying element types and adapting the layout based on the structure. SnazzyPDF's layout engine automates those decisions. The configuration options are still limited but that's what I'm focusing on improving next.
That's awesome! Mind sharing the prompt you used? I'm working on something pretty similar but a little more complex—looking to convert from an Excel sheet to Markdown or JSON.
Admittedly I didn't look at the code but that was the point. To see how little effort I could put in to get a pdf from my JSON. I suspect tons of bugs but it worked for my test.
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)
if __name__ == "__main__": create_pdf_from_json("input.json", "output.pdf")