我打算使用(可能)perl 脚本创建一堆 SVG 图形。这些 SVG 图形将包含文本 block 。由于我想用线条“连接”此类文本 block (不同宽度),我想知道文本的宽度,以便我可以相应地绘制连接线的长度。
我在SVG get text element width中看到过这可以通过java脚本实现。但这可能不是我想要的,因为我不打算在浏览器中托管 SVG。
所以,我想也许有一种方法可以在脚本运行时找出所需的宽度。如果有人能给我指出一个解决方案(也在 Perl 领域之外,但在 Windows 上),我将非常感激。
最佳答案
大约一年前,我使用 PDF::API2 和 advancewidth 函数做到了这一点:https://metacpan.org/module/PDF::API2::Content#width-txt-advancewidth-string-text_state-
请注意,您需要关联 PDF 和 SVG 的 DPI:它们可能不同(实际上我只是将值除以 1.25,您可以做得更好)。
PDF::API2 为您提供非常准确的值,非常适合 Inkscape(就我而言)。
关于perl - 是否可以在使用脚本创建 SVG 之前确定文本字符串的(像素)宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7274946/