gpt4 book ai didi

pdf - Ghostscript 呈现丑陋的文字

转载 作者:行者123 更新时间:2023-12-04 14:33:37 25 4
gpt4 key购买 nike

我正在尝试将渲染 LaTeX 方程式的功能添加到我正在处理的项目中。为此,我使用 XeLaTeX 创建一个 PDF 文件,然后使用 Ghostscript 将其渲染为(透明的)96dpi-PNG。

我想让呈现的 LaTeX 与其余文本混合(使用标准 .NET GDI+ 方法呈现,但这是题外话),但我无法获得可靠的“好”文本渲染:输出总是看起来有些模糊或“不好”。

例子:

Comparison

从左到右,使用 Ghostscript、Photoshop 和 TexWorks(据我所知内部使用 Ghostscript)以 96dpi 渲染的相同(小)PDF。

我用来运行 Ghostscript 的命令如下:

"C:/Program Files (x86)/gs/gs9.09/bin/gswin32c.exe" \
-q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT \
-dMaxBitmap=500000000 -dAlignToPixels=1 -dGridFitTT=2 \
"-sDEVICE=pngalpha" -dTextAlphaBits=4 \
-dGraphicsAlphaBits=4 "-r96" -dFirstPage=1 -dLastPage=1 \
-sOutputFile="output.png" "input.pdf"

(实际上我几乎是从转换 PDF 文件时 ImageMagick 调用的命令中复制过来的,但那是另一回事了)。我尝试更改任何相关选项(dAlignToPixels=0、dGridFitTT=0/1/2、dTextAlphaBits=2/4 [或完全不使用此参数]),我什至尝试将 PDF 渲染为分辨率的 4 倍,然后缩小比例它,没有任何明显的改善。

然而,我确信一定有某种方法可以使用 Ghostscript 正确地渲染 PDF(因为 TexWorks 有),尽管我找不到它。

有什么提示吗? PDF 为 this one .

最佳答案

您可以尝试以更高分辨率呈现您的 PDF。 96dpi 对于 11 pt 大小的文本是不够的。

如果您使用 192dpi,然后将结果图像的显示比例缩放到 50%(无论您在何处使用 PNG),这些部分的显示尺寸仍应与之前相同,但分辨率更高。以前是 4x7 像素的 ' 现在应该是 8x14 像素的 '...


更新

好吧,既然我的解释对 OP 来说似乎还不够好理解,那就这样吧。

  1. 使用 Ghostscript 生成包含单词“Test”的 PDF 文件。在我的例子中,它是 Ghostscript v9.10:

    gs                       \
    -o test.pdf \
    -sDEVICE=pdfwrite \
    -g230x100 \
    -c "/Helvetica findfont \
    11 scalefont \
    setfont \
    1 1 moveto \
    (Test) show \
    showpage"
  2. 从此 PDF 中,使用 6 种不同的分辨率生成 6 张不同的图像来描绘单词“Test”。 gs 仍然是 Ghostscript v9.10(用 gs -version 检查):

    for i in 1 2 3 4 5 6; do      \
    gs \
    -o t$(( ${i} * 96 )).png \
    -r$(( ${i} * 96 )) \
    -sDEVICE=pngalpha \
    -dAlignToPixels=1 \
    -dGridFitTT=2 \
    -dTextAlphaBits=4 \
    -dGraphicsAlphaBits=4 \
    t.pdf ; \
    done

    这将创建以下 PNG,正如 ImageMagick 的 identify 命令所确认的那样:

    identify -format "%f :   %Wx%H pixels  --  %b filesize\n" t[1-9]*.png
    t96.png : 31x13 pixels -- 475B filesize
    t192.png : 61x27 pixels -- 774B filesize
    t288.png : 92x40 pixels -- 1.1KB filesize
    t384.png : 123x53 pixels -- 1.43KB filesize
    t480.png : 153x67 pixels -- 1.76KB filesize
    t576.png : 184x80 pixels -- 2.01KB filesize
  3. 创建示例 LaTeX 文档并并排和/或逐行嵌入不同的图像。这是我的示例代码:

    \begin{document}
    Test
    \includegraphics[height=7.5pt]{t96.png}
    \includegraphics[height=7.5pt]{t96.png}
    \includegraphics[height=7.5pt]{t192.png}
    \includegraphics[height=7.5pt]{t288.png}
    \includegraphics[height=7.5pt]{t384.png}
    \includegraphics[height=7.5pt]{t480.png}
    \includegraphics[height=7.5pt]{t576.png}
    Test\\

    {}

    Test <== real text

    \includegraphics[height=7.5pt]{t96.png} <-- 96 dpi figure

    \includegraphics[height=7.5pt]{t192.png} <-- 192 dpi figure

    \includegraphics[height=7.5pt]{t288.png} <-- 288 dpi figure

    \includegraphics[height=7.5pt]{t384.png} <-- 384 dpi figure

    \includegraphics[height=7.5pt]{t480.png} <-- 480 dpi figure

    \includegraphics[height=7.5pt]{t576.png} <-- 576 dpi figure

    Test <== real text
    \end{document}
  4. 这是通过 LuaLaTeX 从上述 LaTeX 代码创建的 PDF 的屏幕截图(放大 400%):

    Screenshot from resulting PDF page

    具有 8 个“测试”字的行仅在第一个和最后一个字中具有实际文本。中间的6个字是96、96、192、288、384、480和576 dpi的图片。

我希望您现在可以清楚地看到,如果将更高分辨率的图像包含到您的 LaTeX 代码中,那么将生成的图像扩展到更高分辨率将如何提高最终 PDF 的质量...

关于pdf - Ghostscript 呈现丑陋的文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26280128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com