I've been around the block on this problem.
There is no simple native solution. I have tried to create a native COS to PDF generator but its a much bigger problem than time affords.
I know you are asking for a solution that does not include creating a web page, BUT, with exception of going to some other document type (e.g. DOC to PDF) you really have no other easy choice.
However, there is a better way than Zen reports to implement this (IMHO). I use wkhtmltopdf...
It's an executable that takes the name of an HTML file and produces a PDF file. You can also control headers, page numbers etc with it. It's rock solid and really easy to use.
1. Create a simple HTML string with an img tag and save it to a file.
2. Call out to wkhtmltopdf using $ZF passing in the name of the files
If you want to be clever and not save the image to a linked file then you can take its base64 directly from the HL7 message and embed it into the img tag, e.g.
I have wkhtmltopdf running at numerous hospitals turning out upwards of 10,000 letters a day, rock solid, no problems.
Hope that helps.