Forum

from 1.18.2 to 1.18...
 
Notifications
Clear all

from 1.18.2 to 1.18.3, the logo is missing in the ticket print / PDF view

12 Posts
2 Users
0 Reactions
70 Views
Posts: 11
Topic starter
(@astaadmin)
Member
Joined: 4 years ago

Hello, 

Ive done some inspections here my conclusion please check this out and may resolve this in a new version if my inspections are correct: (i am not sure) 

The missing logo in ticket print / PDF view under osTicket 1.18.3 is not a server, permission, or osTicket core issue.
It is an incompatibility between the osTicket Awesome print template and mPDF ≥ 8.1, which is used starting with osTicket 1.18.3.

Test environment (minimal, reproducible):

PHP 8.2.x (also tested with 8.3 / 8.4)
Apache or Nginx
PHP extensions: gd, mbstring
no imagick
allow_url_fopen = Off
allow_url_include = Off
Software:

osTicket 1.18.2 (baseline)
osTicket 1.18.3
osTicket Awesome 102
mPDF:

1.18.2 → mPDF 8.0.x
1.18.3 → mPDF 8.2.7
Reproduction steps:

Working baseline
Fresh osTicket 1.18.2 installation
Install osTicket Awesome
no changes
allow_url_fopen = Off
Print ticket to PDF
Result: Logo renders correctly.

Failing case
Same server, same PHP config
Fresh osTicket 1.18.3 installation
Install osTicket Awesome
no changes
allow_url_fopen = Off
Print ticket to PDF
Result:

Logo missing (red X)
Avatars missing (red X)
Control test
Replace Awesome print template with the osTicket 1.18.3 core template
Print again
Result:

Logo renders correctly
This confirms the issue is in the Awesome print template, not in osTicket core.

Root cause:
The Awesome print template outputs image sources like:

In mPDF 8.0.x, root-relative image paths were often implicitly treated as local files.
Since mPDF 8.1, these paths are classified as URLs.
mPDF attempts HTTP(S) fetching, which fails when allow_url_fopen = Off.
This results in the red X placeholder in the PDF.

Why it worked before:
The behavior in mPDF 8.0.x was implicit and undocumented.
The Awesome template relies on this old behavior.
With mPDF ≥ 8.1 (osTicket 1.18.3), this no longer works.

Why core works:
The osTicket core uses pdf_logo() and embeds the logo internally (cid / local).
No URL-based image loading is used in PDFs.

Conclusion:
This is not an osTicket regression.
It is a template compatibility issue in osTicket Awesome caused by changes in mPDF ≥ 8.1.

Recommended fix:

Embed the logo via pdf_logo() / cid / Base64
Avoid URL-based images in PDFs
 


Reply
Posts: 1177
Admin
(@stevland)
Member
Joined: 2 months ago

If you haven't done so already, please update to osTicket-1.18.3-Awesome-103. This issue is fixed and there are many new features.


Reply
Posts: 11
Topic starter
(@astaadmin)
Member
Joined: 4 years ago

I still habe the same error in the latest rev04. So i dont know what you did - but it fixed nothing? 


Reply
Posts: 11
Topic starter
(@astaadmin)
Member
Joined: 4 years ago

Your Rev 103 change does not actually fix the rendering issue.

It only switches the PDF logo source to the theme custom logo, but still uses a normal reference. This still depends on URL-based image loading.

In environments where allow_url_fopen = Off, mPDF cannot load these image sources, which results in broken images.

This is why:

Rev 104 still shows broken avatars and logos
forcing pdf_logo() to return null restores the osTicket core CID-based logo
enabling allow_url_fopen immediately fixes everything
This proves that the issue is not the logo source, but the image loading mechanism.


Reply
Posts: 1177
Admin
(@stevland)
Member
Joined: 2 months ago

Hi astaadmin,

You're right: the issue persists when allow_url_fopen is disabled. Thanks again for your patience and for
the detailed diagnosis that pointed me in the right direction.

The earlier fix I provided was a partial fix. But it turns out the issue persisted if one has allow_url_fopen set to Off, which apparently you do.

Fix: Edit osta/php/functions.php. Three changes:

1. get_print_logo() — custom logo path (~line 225)

Change:
return ( isset( $config["upload-dir"] ) ? $config["upload-dir"] : "" ) . $config["custom-print-logo"] ;
To:
return $_SERVER["DOCUMENT_ROOT"] . ( isset( $config["upload-dir"] ) ? $config["upload-dir"] : "" ) .
$config["custom-print-logo"] ;

2. get_print_logo() — default logo path (~line 228)

Change:
return ROOT_PATH . "osta/img/ost-print.png";
To:
return $_SERVER["DOCUMENT_ROOT"] . ROOT_PATH . "osta/img/ost-print.png";

3. pdf_logo() — remove cache-buster (~line 389)

Change:
src="<?php echo get_print_logo( $custom )?>?<?php echo time(); ?>"
To:
src="<?php echo get_print_logo( $custom )?>"

This changes the image source from a URL path to an absolute filesystem path, so mPDF reads directly from
disk regardless of your allow_url_fopen setting.

Alternatively, you can re-download revision 104 — the updated zip includes this fix.


Reply
Page 2 / 3
Share: