我有一个 svg 文件,我想将其转换为图像 png,我正在搜索在 ABAP 中执行此操作的任何类,但我找不到任何结果。我尝试使用Javascript执行此操作,然后从ABAP执行它,但是我在JS中的代码应该没有DOM实现或浏览器功能才能从ABAP运行它。
SVG 顾名思义,是一种矢量图形格式,而 PNG 是一种光栅图形格式。将矢量图形转换为光栅图形需要 ABAP 并不真正适合的各种"有趣"功能,例如将(几乎)具有各种属性和修饰符的任何字体的文本渲染到位图中。如果存在纯粹的ABAP解决方案,我会感到惊讶。从技术角度来看,这应该是可能的,但正如你可能想象的那样,这将是一项艰巨的任务。
话虽如此,您可能想尝试使用互联网图形服务的IMGCONV部分。我不确定它是否支持 SVG,但您可能想查看类CL_IGS_*
。
您可以尝试使用附加的正在运行的 GUI 来执行此操作。如果这是一种选择。后端服务器端 Java 解释器确实缺少 DOM,是的。但是也许你可以找到一个可以在没有DOM的情况下在Java中做到这一点的库?应该比执行 ABAP 中所需的位操作更容易。
您无法在abap中将SVG转换为PNG或JPEG。首先,如果您使用 win,您必须下载 SVG 文件并在 Paint 中打开它。然后将其另存为 256 色的位图。之后,您可以将其转换为 png 文件。(为什么?如果加载文件而不将其转换为 256 色位图,SAP 可能无法很好地解释颜色。威特罐变成灰色,灰色罐头变成蓝色)建议:如果您想在 smartForms 或 adobeForms 或 sapscritp 中使用图像,最好的方法是将其上传到 se78 事务中的位图中,然后在打印输出或 alv 标头中调用它