TIL, the German #Datev uses #IBM #zOS for paycheck #PDF generation. PDFs are generated through PDFlib by the Munich based company of the same name:

PDF producer: PDFlib+PDI 9.0.4-m (zSeries z/OS)

The API ref is promising some fun:
"For use with C, C++, Cobol, COM, Java, .NET, Objective-C, Perl, PHP, Python, REALbasic/Xojo, RPG, Ruby"
(https://www.pdflib.com/fileadmin/pdflib/pdf/manuals/PDFlib-9.0.4-API-reference.pdf)

As well as:
"PDFlib is available on a variety of platforms, including Unix,
Windows, OS X, and EBCDIC-based systems such as IBM i5/iSeries and zSeries."
(https://www.pdflib.com/fileadmin/pdflib/pdf/manuals/PDFlib-9.0.4-tutorial.pdf)

And since IBM #zSeries does everything in #EBCDIC, this, of course is also supported:

"stringformat ebcdicutf8: All strings and option lists are expected in EBCDIC-UTF-8 format with or without BOM."

And although I do hope that Datev uses Unix System Services #USS instead of plain #MVS on z/OS, this does give me the creeps:

"MVS versions of PDFlib GmbH products are not thread-safe"
(https://www.pdflib.com/fileadmin/pdflib/System_Requirements/PDFlib-9.0.4-system-requirements.txt)

Truly curséd. But PDFlib on zSeries doesn't support networking ... unfortunately?

PDFlib: PDFlib 9.4.0

PDFlib 9.4.0 Download Packages

The install.txt file also lovely. Installation process for transferring the save file to an IBM System i... begins with "Start a DOS session..." :D

Start a DOS session on your PC, and initiate an FTP session against your
IBM System i executing the following command from your DOS prompt:

FTP mySystemi

Enter your IBM System i user profile and password for the logon.

Switch over to binary mode by running the FTP command:
bin

Create a SAVF on your IBM System i by running the FTP command:
Quote rcmd crtsavf file(qgpl/pdflib)

Use on your IBM System i a file naming format like on personal Computer:
quote site namefmt 1

Adjust the current library:
cd /qsys.lib/qgpl.lib

Transfer the file PDFLIB.SAV to your IBM System i by running the FTP command:
Put C:\yourlocalpath\pdflib.sav pdflib.savf

Exit the FTP session with the FTP command
Quit

Afterwards you're ready to start burning some incense, get the priest and shout the holy incantation:

Step 3: Restore the PDFlib library
----------------------------------

You can now restore the PDFLIB objects by running the following CL commands:

CRTLIB LIB(PDFLIB)
RSTOBJ OBJ(*ALL) SAVLIB(PDFLIB) DEV(*SAVF) SAVF(QGPL/PDFLIB) ALWOBJDIF(*OWNER)

@ljrk What makes you think it would use threads? Batch processing!
@leah Who needs parallelism anyway?! :D
@leah I mean, you're right of course, it's a main frame and whoever still uses an MVS system pre OS/390 (1995) without USS... well, in that case it probably doesn't matter anyway. Incidentally, 9.4.0 doesn't exist for those systems, so we can be sure datev uses USS on OS/390 or actual z/OS.
@leah Interestingly though, PDFlib 10.x does support MVS, so one of these 12 bugs broke the MVS build:
https://www.pdflib.com/fileadmin/pdflib/changelog/changes-PDFlib-9.4.0.txt

Very interesting, the MVS build comes with examples also for C... and yes, they did the thing, they implemented their own try-catch for C

PDF *p;
PDF_TRY(p) {
}
PDF_CATCH(p) {
}

@ljrk I have no idea, but now I'd like to learn RPG!

Endless phun, when you have enough experience points to raise your code level to 12. That unlocks your ability to finally use 3rd party libs made by the most feared PDFlib GmbH (find it in a treasure chest in the end of the unsafe threads dungeon before it collapses).

@ljrk
Btw. I've checked what the RPG programming language is all about. Ohhhhhhhh...

Imagine writing EBCDIC formated RPG code in Ed!

Should become a thread safe MUD in the end!!

@Herr_Irrtum Only if you're using IBM ed which adds error messages, but extremely unhelpful ones!
@ljrk OMG, yes, yes, that sounds so goooood!
All I remember from IBM is the smitty command for AIX. In all regards something completely different, but it gives me an idea how GREAT IBMs implementation of Ed has to be...
@Herr_Irrtum Oh, Alien UNIX, yes, great stuff :'D