问题标签 [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.
svg - JavaFX 2.2 中的 SVG 图像
我是 JavaFX 2.2 的新手,到目前为止,我找不到在我的 JavaFX 2.2 应用程序中显示 SVG 图像的方法。我看了看 Batik,但它并没有对我有用,因为它转换BufferedImages
为javafx.ImageView
.
有没有办法在 JavaFX 应用程序中显示 SVG 图像?或者您至少可以从 JavaFX 导出 SVG 图像吗?该功能Node.snapshot()
对那里有任何帮助吗?
java - 如何将 dojox.charting.Chart 转换为 PNG 图像供用户导出?
DOJO 正在开发的我的项目中有一个新要求,即用户可以将图表导出为 PNG 图像。我进行了一项研究,发现了两个想法:
1,尝试在DOJO API中找到合适的方法直接导出为PNG图像(因为我与Ext JS相似,它提供了导出到图像的API方法),但是DOJO图表没有方法可以做到这一点。
使用 dojox.fx 或 dojox.gfx 等 DOJO API 绘制图像,但这些无法生成图像。所以我放弃了这条路。
2、使用第三方插件实现。首先,我可以通过 'dojox.gfx.utils.toSvg(chart.surface).then' 方法获取图表的表面内容,然后使用 Apache 的插件 Batik 将 SVG 内容转换为 PNG 图像。以下是我的尝试代码:
并且 doExportChart 方法执行以下操作:
SVG sample.svg 的内容如下:
然后运行上面的代码遇到错误:
我按照http://xmlgraphics.apache.org/batik/using/transcoder.html的官方示例做第二个解决方案。我不知道,希望有人能给我指导。非常感谢。
java - 通过 Batik 对更新的图像进行转码时的问题
我一直在为一个命令行程序编写一个 GUI 包装器(在 Java 中),该程序在一个文件名下生成 SVG 图像。
不幸的是,底层程序在生成新图像时无法关闭 svg 标签,所以我使用 FileWriter 来修改文件:
Batik 完美地转码了第一张图像,但第二张图像由于缺少 svg 标签而失败。
我已手动检查以验证 FileWriter 是否两次都在更新文件,确实如此。
下面是我的转码器代码(带有输入文件和 newFileName):
每次生成更新的 SVG 图像时,都会实例化一个新的转码器对象并运行上述方法。
始终生成图像并在转码器运行之前添加结束标记,所以我不知道为什么转码器似乎没有读取更新的文件。我也试过暂停线程几秒钟,没有任何改进。
任何建议,将不胜感激。
java - 在 Java 中缩放时查看 SVG 文件的像素
我正在使用 Batik 库处理 Java 中的 SVG 文件。当我缩放它时会出现问题。我可以看到线条的像素。当然这不应该发生,我应该能够至少缩放 4000% 并保持平滑度。
SVG 文件是从扩展类中读取的,并且是通过覆盖绘制方法绘制的。首先,我将新比例设置为 AffineTransform 变量,将其应用于方法的图形并使用 super.paint() 进行绘制。
我真的被卡住了,无法弄清楚问题所在。我使用的 SVG 文件没问题,我在 Inkscape 中打开它们并且可以在不显示像素的情况下进行缩放。请帮忙。
代码:
java - 在java中将svg转换为pdf时更改字体
我有一个用于将 svg 转换为 pdf 的 java 程序。在那个 svg 文件中,我给了 Myriad Pro Light 作为样式,在转换为 pdf 之后,字体又出现了别的东西。谁能建议我如何以编程方式配置字体样式。
java - 在 Java 中找不到异常的来源
基本上是抛出异常,我找不到原因。这是我在控制台上得到的:
它显然来自我用来绘制 SVG 文件的蜡染库,但我确保在文件加载、准备好并在屏幕上显示之前没有绘制任何内容。抛出时没有任何东西被绘制。
另一个有趣的事情是投掷的时机。我找不到任何合乎逻辑的模式,因为有时它会在我开始上课时立即抛出,有时需要超过五分钟。除此之外,据我测试,没有一个单独的动作调用 repaint() 来触发它,或者更确切地说是所有动作。
我是 Java 新手,所有其他异常都有抛出它们的类和行号,所以我不知道该怎么做。
任何建议将不胜感激。
代码是巨大的,所以我会只放paint方法,如果需要任何额外的东西,请说出来。
编辑:我的班级没有数组,所以我无法检查任何索引。我认为这个异常是从我使用的库中抛出的,但它是一个 .jar 文件,我不知道如何打开它或者我是否可以打开它。
java - 如何调用 batik-rasterizer.jar
从 1.7 版开始使用batik-rasterizer.jar
batik,我想知道如何正确调用 jar。
这给了我:
因此,我一直在寻找正确的MainClass
并ClassPath
使用。我会在一分钟内发布一个我想出的脚本作为答案......
coldfusion - 无法通过 Coldfusion 将 SVG 变量传递到 Batik 转码器
在从 SQL 表中获取 SVG 代码并将其传递到 Batik 以对其进行转码(显示 PNG)之间存在一些我不明白的事情。
如果我运行下面的 CF 代码,我会收到错误:无法显示图像,因为它包含错误。这是其中任何一个产生的唯一错误。
我还使用返回 true 的 isXML() 测试了表中的值。
但如果我:
- 取消注释第 1 节,
- 复制 CFDUMP 生成的 SVG 代码,
- 在第 2 节中将该 SVG 代码粘贴回 CFSET 中,
- 并重新注释掉评论部分 1
然后 PNG 按预期显示在浏览器中。在 CFDUMP 中显示 SVG 代码,然后手动将其粘贴到代码中以某种方式(神秘地)使用它的过程会改变它,因此它可以工作......
我尝试了各种变化。当它在 CFDUMP 中显示 SVG 代码时,ColdFusion 似乎在做一些我不理解的事情(或者可能是 SQL 的某种字符集问题?)。
有人知道这可能是什么吗?我受阻了。
jquery - 无法使用从数据库中检索到的 SVG(UTF-8 错误)
当我尝试在 Batik 转码中使用从 SQL 表中检索到的 SVG 代码时,出现错误“3 字节 UTF-8 序列的无效字节 2”。
由 jQuery 从 DOM 中提取的 svg 绘图,并通过 jQuery Ajax 发送到 cfc,在那里它被更新为 SQL 表。在另一个单独的页面上,从表中查询了 SVG 代码,我尝试使用 Batik 将其转码为 PNG 文件。那时我收到了 Invalid UTF-8 Sequence 错误。
保存数据的代码:
来自 CFC 的代码,其中 SVG 代码保存到表中:
从表中检索 SVG 并用于转码为 PNG 的代码:
注意:相反,我尝试将 svg 发送到操作页面,在该操作页面中将其更新到表中,立即从该表中检索它,然后对其进行转码,这样可以正常工作。所以在我看来,在通过 ajax 发送或从表中更新/检索时,我必须对字符集做错了什么。如果可以的话请帮忙...
我已经把它缩小了一些。当我将 svg 直接输入到表中时,第三部分工作正常......所以它一定是在 ajax 调用中发送数据的方式有问题,其中 svg 被发送到 cfc 以存储在表中.
jquery - jQuery ajax 似乎改变了发送到coldfusion服务器的SVG数据
我正在使用 $.ajax() 将字符串发送到存储在表中的冷融合服务器。当我稍后查询并尝试使用该数据时,我得到一个错误;“空封闭异常:3 字节 UTF-8 序列的字节 2 无效”。
首先,我从 DOM 中获取 SVG 并将其发送到操作页面。它应该只是一个字符串,对吧?
在 myAction.cfm 页面上,我将数据更新到一个表中。
SVG2PNG.cfm:当我尝试查询和使用 svg 数据时,我收到错误“3 字节 UTF-8 序列的字节 2 无效”。错误发生在 .transcode 行。
我已经多次使用 jQuery 的 ajax 方法,没有太大的困难。我在这里做错了什么,我似乎无法处理它......