Subject: bug#58041: [PATCH] docview: Use svg images when using mupdf for conversion

From: Stefan Monnier <[email-masked]>
Date: Thu, 12 Jan 2023 11:33:49 -0500

> --- a/lisp/doc-view.el
> +++ b/lisp/doc-view.el
> @@ -921,7 +921,7 @@ doc-view-shrink-factor
>  (defun doc-view-enlarge (factor)
>    "Enlarge the document by FACTOR."
>    (interactive (list doc-view-shrink-factor))
> -  (if doc-view-scale-internally
> +  (if (or doc-view-scale-internally doc-view-mupdf-use-svg)
>        (let ((new (ceiling (* factor doc-view-image-width))))
>          (unless (equal new doc-view-image-width)
>            (setq-local doc-view-image-width new)
> @@ -941,7 +941,7 @@ doc-view-shrink
>  (defun doc-view-scale-reset ()
>    "Reset the document size/zoom level to the initial one."
>    (interactive)
> -  (if doc-view-scale-internally
> +  (if (or doc-view-scale-internally doc-view-mupdf-use-svg)
>        (progn
>  	(kill-local-variable 'doc-view-image-width)
>  	(doc-view-insert-image

Hmm.... `doc-view-mupdf-use-svg` means "use SVG when the backend
is mupdf" but we don't know here whether the backend is mupdf, so this
will misfire when using something else than mupdf, no?

>> I wasn't thinking of duplicating the code, but of rethinking the naming
>> a bit.  I think what we meant by "pdf->png" is actually the process that
>> extracts pages (which just happened to use the PNG format and now can
>> also use the SVG format).

> Indeed, it is a misleading name.  This change will have to go to master,
> I believe?  I have to look around a bit more to see where the function
> is being used.
> There's also the fact that there's more than one more program that can
> generate SVG files (as Gregory pointed out in this thread) so it might
> be nice to have pdf->png and pdf->svg "function variables" and a "super
> function" that actually does the job.  Hopefully, this will allow to
> fall back gracefully to PNG if SVG generation is faulty.

Indeed, I think there's some cleanup/orthogonalization in order here.

        Stefan