From: Mauro Carvalho Chehab <mchehab@kernel.org>
To: Akira Yokosawa <akiyks@gmail.com>
Cc: Jonathan Corbet <corbet@lwn.net>,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/3] docs: sphinx/kfigure.py: Improve conversion to PDF
Date: Sun, 12 Dec 2021 11:38:13 +0100 [thread overview]
Message-ID: <20211212113813.058e99fc@coco.lan> (raw)
In-Reply-To: <de8def13-efbc-1d98-acb5-5cc1f6902e4b@gmail.com>
Em Sun, 12 Dec 2021 16:59:53 +0900
Akira Yokosawa <akiyks@gmail.com> escreveu:
> This patch set improves conversions of DOT -> PDF and SVG -> PDF
> for PDF docs.
>
> * DOT -> PDF conversion
First of all, package requirement for docs generation should be auto
discovered by:
scripts/sphinx-pre-install
and should not break the ones detected by check_distros() and that
supports PDF generation.
>
> Current scheme uses "dot -Tpdf" (of graphviz).
>
> Cons:
> - openSUSE's dot(1) does not support -Tpdf.
I'm sure I tested pdf generation in the past with openSUSE by the
time I wrote sphinx-pre-install script. Perhaps some change at either
openSUSE or at the docs makefile broke support for it.
> - Other distro's dot(1) generates PDFs with unnecessarily wide
> margins for inclusion into LaTeX docs.
>
> Patch 1/3 changes the route to two steps:
>
> 1. DOT -> SVG by "dot -Tsvg"
> 2. SVG -> PDF by "rsvg-convert -f pdf" with fallback to convert(1).
rsvg-convert is not present on Fedora (nor on RHEL and CentOS), as far
as I'm aware.
> Pros:
> - Improved portability across distros
> - Less space for graphs in final PDF documents
>
> Con:
> - On systems without rsvg-convert, generated PDF will be of raster
> image.
Raster images are a very bad idea. Why don't keep use "dot -Tpdf" when
supported by the system? instead of falling back to raster images?
> * SVG -> PDF conversion
>
> Current scheme uses convert(1) (of ImageMagick)
>
> Cons:
> - Generated PDFs are of raster image. Some of them look blurry.
> - Raster image tends to be large in size.
> - convert(1) delegates SVG decoding to rsvg-convert(1).
> It doesn't cover full range of Inkscape specific SVG features
> and fails to convert some of SVG figures properly.
>
> Failed conversions are observed with:
> - Documentation/userspace-api/media/v4l/selection.svg
> - Documentation/userspace-api/media/v4l/vbi_525.svg
> - Documentation/userspace-api/media/v4l/vbi_625.svg
What do you mean by failed? With the current way, the VBI ones
seem OK to me:
https://linuxtv.org/downloads/v4l-dvb-apis-new/pdf/media.pdf
(This is daily updated. On today's build the raw VBI ones are in
page 1031/1032)
Do you mean that your changes caused a regression there?
> If you have Inkscape installed as well, convert(1) delegates SVG
> decoding to inkscape(1) and the above SVGs are rendered correctly.
>
> So if Inkscape is required for converting those SVGs, why not use it
> directly in the first place?
I remember that the main focus were to be able to generate PDF at the
major distros. It should be OK to use whatever tool, provided that it
won't cause regressions with such distros. Not that is should matter
much for the others, but my particular interest is that it shouldn't
cause regressions neither on Debian nor on Fedora, as those are the
ones I use for PDF generation. Debian is used at linuxtv.org, where we
do automate builds for PDF, ePUB and HTML. Fedora is what I used locally,
in order to test and fix issues on media PDF document output.
> Patch 2/3 adds a route of SVG -> PDF conversion by inkscape(1).
> Patch 3/3 hides warning messages from inkscape(1) which are harmless
> in command-line uses.
>
> Pros:
> - Generated PDFs are of vector graphics.
> - Vector graphics tends to be smaller in size and keeps looking nice
> while zoomed in.
> - SVGs drawn by Inkscape are fully supported.
>
> On systems without Inkscape, there won't be any change in behavior.
>
> Thanks, Akira
> --
> Akira Yokosawa (3):
> docs: sphinx/kfigure.py: Use rsvg-convert(1) for DOT -> PDF conversion
> docs: sphinx/kfigure.py: Use inkscape(1) for SVG -> PDF conversion
> docs: sphinx/kfigure.py: Redirect warnings from inkscape to /dev/null
>
> Documentation/sphinx/kfigure.py | 109 ++++++++++++++++++++++++++++----
> 1 file changed, 97 insertions(+), 12 deletions(-)
>
>
> base-commit: a32fa6b2e8b4e0b8c03f5218afa0649e188239c5
Thanks,
Mauro
next prev parent reply other threads:[~2021-12-12 10:38 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-12 7:59 [PATCH 0/3] docs: sphinx/kfigure.py: Improve conversion to PDF Akira Yokosawa
2021-12-12 8:01 ` [PATCH 1/3] docs: sphinx/kfigure.py: Use rsvg-convert(1) for DOT -> PDF conversion Akira Yokosawa
2021-12-12 8:02 ` [PATCH 2/3] docs: sphinx/kfigure.py: Use inkscape(1) for SVG " Akira Yokosawa
2021-12-12 8:03 ` [PATCH 3/3] docs: sphinx/kfigure.py: Redirect warnings from inkscape to /dev/null Akira Yokosawa
2021-12-12 10:38 ` Mauro Carvalho Chehab [this message]
2021-12-12 11:57 ` [PATCH 0/3] docs: sphinx/kfigure.py: Improve conversion to PDF Akira Yokosawa
2021-12-13 6:33 ` Mauro Carvalho Chehab
2021-12-13 7:53 ` Akira Yokosawa
2021-12-13 14:36 ` [PATCH 4/3] docs: sphinx/kfigure.py: Add check of 'dot -Tpdf' Akira Yokosawa
2021-12-14 2:34 ` [PATCH 5/3] docs: sphinx/kfigure.py: Delegate inkscape msgs to kernellog Akira Yokosawa
2021-12-14 2:50 ` Randy Dunlap
2021-12-14 3:14 ` Akira Yokosawa
2021-12-23 19:56 ` [PATCH 0/3] docs: sphinx/kfigure.py: Improve conversion to PDF Jonathan Corbet
2021-12-23 21:52 ` Akira Yokosawa
2021-12-23 23:48 ` Jonathan Corbet
2021-12-24 1:53 ` Mauro Carvalho Chehab
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211212113813.058e99fc@coco.lan \
--to=mchehab@kernel.org \
--cc=akiyks@gmail.com \
--cc=corbet@lwn.net \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox