问题标签 [batik]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1710 浏览

java - 在 Java 中使用 Batik 检查和删除 SVG 中的属性

这个问题基本上说明了一切。如何检查 SVG 是否具有 viewBox 属性?我正在使用蜡染库。我需要这个,因为我需要(至少)通知用户有一个 viewBox 属性。

我可以删除它吗?

0 投票
2 回答
864 浏览

java - Apache Batik - 例外:“prolog 中不允许的内容”将 PDF 转换为 JPEG

当我尝试将某些 PDF 转换为 JPEG 时出现异常,并显示消息“prolog 中不允许内容”。我正在执行一个两步操作,将 SVG 转换为 PDF,然后将 PDF 转换为图像。

当我尝试执行 Batik 的直接流程时,我遇到了这个问题。

这是我的代码。

0 投票
1 回答
1983 浏览

java - 从 SVG 文件创建非缓冲 java.awt.Image

我有一些现有代码,看起来很像Swing & Batik 上的解决方案:从 SVG 文件创建 ImageIcon?

但是我的图像的目的地是 PDF,当你放大 PDF 时,你会看到像素,这让我很烦恼。如果源数据和目标数据都是矢量图形,应该可以直接渲染。

我们正在使用的库(iText)采用 java.awt.Image,但我似乎无法弄清楚如何获取呈现 SVG 的 java.awt.Image。蜡染有办法做到这一点吗?

0 投票
1 回答
683 浏览

java - SVG到图像质量降低

我的要求是将 .SVG 转换为图像。SVG 文件由内部工具生成。我正在通过两种方法尝试这些:

  1. 使用 JPEG 转码器将 SVG 转换为图像。我的 SVG 文件是复杂的地图,上面有一些文字。生成的图像质量降低了很多文本不可读 lloks 模糊。
  2. 将 SVG 转换为 PDF 并将 PDF 转换为图像。我正在使用 Batik 执行 SVG 到 PDF,使用 PDFRenderer 执行 PDF 到图像。
    PDF to image 生成不可读的图像。
0 投票
2 回答
1791 浏览

java - 使用 Batik 读取 SVG 文件时使用自定义元素工厂

我正在尝试读取从旧程序导出的较大 (1 MB) svg 文件。我无权访问该程序或数据。我只有这个导出的 svg 文件,我可能需要定期从这个源导入一个新导出的 svg 文件。我发现使用蜡染的第一个问题是阅读此文件时非常严格。例如,Firefox 读取和显示此文件没有问题。蜡染(包括 Squiggle 无法显示,因为文档中有一些“自定义”标签)。我得到的例外是......

...因此,使用不完全有用的链接编写蜡染 Dom 扩展,我设法编写了以下内容...

但是我得到了同样的错误, System.out.println() 语句从未被命中,所以它显然没有正确注册我的工厂。附带说明一下,无论如何,是否有使 Batik 不那么严格,以便它像 Firefox 那样跳过它不理解的东西?

0 投票
5 回答
7663 浏览

batik - 如何找到包 org.w3c.dom.svg?

我似乎找不到它,Netbeans 说这个包不存在?我必须获得哪个 jar 包才能拥有包 org.w3c.dom.svg?我正在使用蜡染 SVG

0 投票
0 回答
191 浏览

java - 如何根据边界框和特定单词来相对调整 SVG 字体的大小

我需要使用 SVG 在矩形内绘制一些文本。我有由路径定义的图标,并且我根据图标的形状为每个图标任意选择了文本画布区域。我需要做的是绘制一些文本(可以随每个请求而改变),使文本在我的文本画布区域内居中(水平和垂直),并调整使用的字体大小,使其完全适合帆布。

到目前为止,我一直在做的是使用 Batik 生成原始图像,然后使用 java.awt 在其上绘制文本。这已经通过从画布区域的 80% 的字体高度开始,然后检查渲染字体的宽度(使用字体度量)并且 - 如果它大于画布区域的宽度 - 将其减少 5%一次,直到它适合。如果它第一次适合,则不涉及循环,因此它仍然相对有效(至少在可预见的将来)。

但是,这种方法在几个方面存在问题,最重要的是在处理向图标添加笔划时,因为随着笔划的增加,图标的边界框会发生不可预测的变化,因此我希望在 SVG 本身内绘制字体。

我可以在 SVG/Batik 中使用类似的方法来调整字体大小直到它适合吗?我该怎么做?有人可以为我指出一个很好的资源吗?我没有在 Google/Stackoverflow 上找到合适的答案,但如果我错过了一个明显的答案,请务必将我发送到那里。

提前谢谢了。

0 投票
2 回答
183 浏览

java - 从命令行生成 SVG 失败,但使用 NetBeans 成功

我有一个奇怪的问题。我目前正在尝试使用 svg 生成,我使用以下代码生成 svg 文件:

如果我使用 NetBeans 运行我的程序,它会生成以下内容:

这在浏览器中正确显示。但是,如果我用cmd运行,文件内容如下:

在这种情况下,浏览器会给我以下错误:

但是,如果我键入 Ruccc 而不是 Rúccc,那么无论是从命令行还是从浏览器,一切都很好。我想问题在于 ú 的匈牙利字符的存在。如何在 Java 中使用 svg 生成处理匈牙利字符,以便从命令行正确生成我的 svg?感谢您的任何意见。

0 投票
1 回答
720 浏览

java - JSVGCanvas.getSVGDocument() 返回空值?

我似乎在使用 batikSVG 使用 Java 操作 SVG 时遇到问题。我可以在 JSVG Canvas 上很好地显示 SVG,但是当我尝试使用 getSVGDocument 显示画布的 SVGDocument 时,它似乎返回 null。为什么会这样,我怎样才能得到实际的文件?

最后一行测试 doc 为 null 的位置,它总是打印 null。请帮忙!

0 投票
2 回答
1718 浏览

java - Highchart 使用 Java 在屏幕外生成 SVG

我想知道是否有一个用于 HighChart 的 Java API(不是导出 API),它可以根据提供的参数生成 svg,然后可以使用 Batik将其转换为 png,而无需靠近 HTTP 请求

目前我能想到的唯一方法是发布到带有图表点的虚拟页面,然后导出到 SVG 并使用 Javascript 提交到导出服务,使用 Javascript 将其转换为 PNG,然后将其作为图像流返回.

但是,我只需要在 JVM 中获取由 DB 参数提供的图像流。上述方式需要 2 个请求-响应对,除此之外它不是最干净的解决方案,我认为它会产生开销,因为此操作在服务器上会非常频繁。