Ensure the converter can create print-ready proofs for print-on-demand jobs
- Dominant language
- Python
- Stars
- 146
- Forks
- 97
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 104
Description
This feature will be part of Google Summer of code 2026. Please ensure you read the following to ensure you are able to participate: https://owasp.org/www-community/initiatives/gsoc/gsoc2026
## The solution
In order to drive the project further and create print ready proofs for print-on-demand we need to be able to script the various card game editions and convert theses to print ready pdfs. This means that we would like to take as input a template, parse the source files with the information about card codes and card mapping, merge the data into the template and print a pdf that can be released as part of the projects regular releases.
Scribus looks promising: https://wiki.scribus.net/canvas/Command_line_scripts#Usefull_'Create_PDF_out_of_existing_scribus_document'_script
Please keep in mind that the website is responsive and that the card design need to also be responsive inline with the current implementation.
There is an api interface module that is written in Python: https://impagina.org/scribus-scripter-api/
The api lacks support for idml, but if the idml templates are made into the Scribus file format, then Scribus will be able to print the data as pdfs.
There is a repository which should have all the script files we need: https://github.com/aoloe/scribus-script-repository
## Alternatives considered
Indesign server is an alternative, but it’s a commercial product and too expensive.
## Additional context
Currently we are not delivering print ready design files. A designer always have install the fonts, open the idml document, clone the back of the card 79 times to the correct place and export to pdf.
Instead we should just be able to deliver final pdfs and not idml with embedded art works.
**Please be advised** I tried to open the current files in Scribus, but because they have been created with indesign, the result is bad. In order to make this work, we may have to create new layouts and templates using Scribus and save them as scribus documents (sla). We probably need to write an extension to the converter for this. It would be nice if we also improve the installation and deployment of the converter or at least keep that in mind or later.
Scribus does support idml https://github.com/scribusproject/scribus/blob/master/scribus/plugins/import/idml/importidmlplugin.cpp
but I haven’t been able to relink the images without the images getting skewed. This could be due to some issue with the positioning or the image. More investigations needed.
## The plan is the following:
1. ReCreate Scribus templates for the bridge and tarot layout based on the current idml templates in https://github.com/OWASP/cornucopia/tree/master/resources/templates
You will need Adobe indesign to do this.
NB: you do not need to recreate all of them. Start with: https://github.com/OWASP/cornucopia/blob/master/resources/templates/eop_ver_cards_tarot_lang.idml
2. Create a new card converter for Scribus based on https://github.com/OWASP/cornucopia/blob/master/scripts/convert.py with the same commandline options, but that, instead of using idml templates, uses Scribus.The converter takes as input a [cards yaml file](https://github.com/OWASP/cornucopia/blob/master/source/eop-cards-5.0-en.yaml) and a [mapping file](https://github.com/OWASP/cornucopia/blob/master/source/eop-mappings-1.0.yaml) and should merge these into the Scribus template.
3. Create an option in the new converter that can print to pdf using the Python Scribus API.
Contributor guide
Assessment
This issue has not been assessed yet.