Our state of the art Gantt chart


Post by Jerther »

Hi!!

Here's an easy one to replicate.

  • Load the export demo: https://www.bryntum.com/products/gantt/examples/export/
  • Hit the export button and change the following settings:
    Paper format: legal
    orientation: landscape
  • Export!
  • Look at the PDF
  • :!: All the bars are missing! And the gantt chart is still in portrait, and it does not fill the entire page (see attached PDF)

I almost lost my mind on this one. Our export server works fine on my dev machine, but has the same problem as yours on our production environment. This has started after doing an upgrade from 5.2.7 to 5.6.2. REALLY weird. Good luck :|

Attachments
Gantt (1).pdf
(57.99 KiB) Downloaded 13 times

Post by alex.l »

Hi,

We have a ticket for that problem here https://github.com/bryntum/support/issues/7929
It's a high prio bug that we will fix asap. Thanks for the report!

All the best,
Alex


Post by Maxim Gorkovsky »

Hello.
Which version of PDF export server do you use? More specifically, which puppeteer version? I get a feeling because of outdated browser some styles work different, or maybe even not supported. It has to be a problem with a browser version, because styles are apparently loaded.
Another possible source of a problem is wrong CSS. If you're hosting CSS from PDF server itself (using -r option), then you need to make sure that CSS is updated properly along with Bryntum package upgrade.

Speaking of wrong page orientation, this is expected. Page itself is in landscape mode, but in order to fit gantt entirely on one page content got scaled proportionally. Gantt itself looks portrait because in our demo its height exceeds its width. I can suggest using multipage vertical exporter.


Post by Jerther »

Hi!

  • I use pyppeteer, which is puppeteer for Python. It uses Chromium 71.0.3542.0 by default. It is quite old indeed... And so is pyppeteer at this point. I could force a later revision of chromium, but the doc warns this could break pyppeteer.
  • I made sure the correct CSS was loaded.

I made a mistake in my original post. I thought I had forced the export server on my dev machine to use the same chromium version as on our production server but I hadn't. It was using an up to date google-chrome instead. So that's why it was working. I managed to force the same version of chromium and I got the same result as on our production server. It finally makes sens...


Post by Maxim Gorkovsky »

Do I understand correctly that hypothesis about outdated browser is true on your end, and you solved problem by upgrading? We upgraded our version to 104.0.5109.0 but it didn't help. However, that is still 15 major versions behind.


Post by Jerther »

Yes it is true on my end. If I force pyppeteer to use my OS google-chrome version 119.0.6045.199, the diagram is fully shown.

So, I just proceeded to find the exact revision of chromium where the rendering broke. Here's what I found:

1015884 ok
896293 ok
727944 ok
711635 ok
705911 ok
703170 ok
702001 ok
701501 ok
701220 ok
701160 ok
701156 ok
701143 NOPE!
701142 NOPE!
701139 NOPE!
701119 NOPE!
701095 NOPE!
701020 NOPE!
700139 NOPE!
678912 NOPE!
617741 NOPE!
126170 too old

So the rendering is broken for revisions 701143 and older.

Revision 701156 is version 79.0.3929.0
Revision 701143 is also version 79.0.3929.0.


Post by Jerther »

I just realized you still have the problem on version 104.0.5109.0 which is way more up to date. Now I'm having a hard time finding that version in the snapshots repository. Still looking...

Revision 1015884 is version 105.0.5132.0
Revision 896293 is version 93.0.4555.0


Post by Jerther »

Here's an updated list of revisions, results and versions. I'm fairly confident 104.0.5109.0 is fine on my side.

1015884 ok 105.0.5132.0
1015732 ok 105.0.5130.0
1011902 ok 104.0.5109.0
1011860 ok 104.0.5109.0
1011810 ok 104.0.5109.0
1011515 ok 104.0.5108.0
1011283 ok 104.0.5107.0
1008526 ok 104.0.5088.0
1006166 ok 104.0.5077.0
1005803 ok 104.0.5075.0
1001140 ok 103.0.5054.0
999733 ok 103.0.5045.0
997162 ok 103.0.5031.0
986229 ok 102.0.4971.0
980305 ok 101.0.4941.0
896293 ok 93.0.4555.0
727944 ok
711635 ok
705911 ok
703170 ok
702001 ok
701501 ok
701220 ok
701160 ok
701156 ok 79.0.3929.0
701143 NOPE! 79.0.3929.0
701142 NOPE!
701139 NOPE!
701119 NOPE!
701095 NOPE!
701020 NOPE!
700139 NOPE!
678912 NOPE!
617741 NOPE!
588429 NOPE! 71.0.3542.0
126170 too old

Post by Maxim Gorkovsky »

We have an assumption issue might be related to caching on puppeteer side. We will try disabling cache and seeing if it helps: https://pptr.dev/api/puppeteer.page.setcacheenabled/


Post by Jerther »

I've tried setCacheEnabled on my side, but no change.


Post Reply