gpt4 book ai didi

pdf - 保存文本的 SVG 到 PDF 转换器

转载 作者:行者123 更新时间:2023-12-04 19:38:51 24 4
gpt4 key购买 nike

我正在寻找一个 SVG 到 PDF 转换器,它可以保留 SVG 中的文本。我试过 Batik、Inkscape 和 CairoSVG。他们生成的PDF都是位图图像,包括文本;无法在 PDF 查看器中选择/搜索文本。他们都做得不好,尤其是 CairoSVG。

我按照指示here (请注意,您不必编译 FOP - 您可以从 here 下载 PDF 转码器)。现在我看到,如果我放大 PDF,清晰度会被保留,我认为这意味着文本会被保留。但是,我无法搜索或选择文本。

此外,我比较了使用 FOP 的 PDF 转码器与 Batik 中的输出,我看不出有什么区别。

最佳答案

如果您使用过滤器、渐变或 mask ,则可能无法将此 1:1 转换为 PDF。在这些情况下,转换器通常对矢量数据进行光栅化以获得相似的视觉外观,而不是保留矢量数据并获得非常不同的外观。

编辑 :在您的示例中,我们可以确保在以下 XSLT 转换的帮助下使用填充属性而不是过滤器:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">

<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>

<xsl:template match="@fill[ancestor::svg:symbol]" priority="1">
<xsl:attribute name="fill">currentColor</xsl:attribute>
</xsl:template>

<xsl:template match="@filter[starts-with(.,'url(#colorFilter-')]">
<xsl:attribute name="color">
<xsl:value-of select="concat('#',substring(.,18,6))"/>
</xsl:attribute>
</xsl:template>

<xsl:template match="svg:use[not(@filter)]">
<xsl:copy>
<xsl:attribute name="color">#fff</xsl:attribute>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>

这完全取决于过滤器在这个特定 SVG 中的命名方式,因此它不适用于其他任何东西。不过颜色不太对。我很想知道为什么这个颜色矩阵:
0.4 0   0   0 0
0 0.6 0 0 0
0 0 0.8 0 0
0 0 0 1 0

应用于白色显然不会导致 rgba(40%,60%,80%,1) .

关于pdf - 保存文本的 SVG 到 PDF 转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15854828/

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