Wondering how to tell when Evince is completed rendering


We use Evince for a display wall, and we load various linux desktops one at a time with a fullscreen rendering of Evince, and then selecting the next desktop, rendering, etc.

If we switch to another desktop before Evince is done rendering (as Evince returns and our bash script continues on, possibly prior to complete rendering), then the image is rendered on the wrong desktop.

Currently we just place a conservative sleep in the script, but that is inefficient and sometimes insufficient.

Would you have any suggestions for us to tell when the rendering is complete and thus it would be safe to move to the next desktop?

Thanks again for an excellent product, and any thoughts.


I am unsure I understand your situation, so please bear with me. I will try to explain with my own work to check I am getting your problem right.

You are running Linux on digital signage or alike, and you are using Evince to display the content there, possibly some big or heavy PDF, which takes noticeable time to render.

In addition, you need to display multiple boards, posters, or signs. For that purpose, you run multiple workspaces or run multiple desktops, each one with an Evince window on it.

You have some sort of carousel script that rotates from one board/banner/sign to the next one. However, you would like to avoid switching to the next one if the document has not been rendered yet.

Did I get it right?

Assuming I understood your setting. It would be good to know which version of Evince you are using, which version of poppler (the library used by Evince) you are using, if you are using X11 or Wayland, and the display resolution.

The correct work to do would be to determine why the document is being rendering slow, and try to fix the issue. You can compare pdftocairo and pdftoppm. For example:

% time pdftocairo -png your-document.pdf output-cairo
% time pdftoppm -png your-document.pdf output-splash

Both commands belong to poppler, and the use different backends to render. You can check the manual of both commands, to try to scale the document to the size you are expecting to. Please report the output here. It would be idea to have a document that reproduces the issue, so we can try to determine the actual problem, and possibly find a fix.

A workaround would be for Evince to print when it finishes a job. Check the Profiling Evince page, and catch when the rendering of the page ends.

This topic was automatically closed 45 days after the last reply. New replies are no longer allowed.