apache的batik官网

Apache(tm) Batik SVG Toolkit - a Java-based toolkit for applications or applets that want to use images in the Scalable Vector Graphics (SVG)https://xmlgraphics.apache.org/batik/

maven依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.burns.batik.svg</groupId><artifactId>batik_svg_test1</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><dependencies><dependency><groupId>org.apache.xmlgraphics</groupId><artifactId>batik-all</artifactId><version>1.14</version></dependency><dependency><groupId>org.apache.xmlgraphics</groupId><artifactId>fop</artifactId><version>2.7</version></dependency></dependencies></project>

通过batik生成svg内容并通过界面展示生成效果

代码

package com.burns.batik.svg.test20220527_1;import org.apache.batik.anim.dom.SVGDOMImplementation;
import org.apache.batik.svggen.SVGGraphics2D;
import org.apache.batik.swing.JSVGCanvas;
import org.w3c.dom.DOMImplementation;
import org.w3c.dom.Element;
import org.w3c.dom.svg.SVGDocument;import javax.swing.*;
import java.awt.*;
import java.awt.geom.Line2D;
import java.io.OutputStreamWriter;
import java.io.Writer;public class ViewGeneratedSVGDemo1 {public static void main(String[] args) throws Exception{// Create an SVG document.DOMImplementation impl = SVGDOMImplementation.getDOMImplementation();String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI;SVGDocument doc = (SVGDocument) impl.createDocument(svgNS, "svg", null);// Create a converter for this document.SVGGraphics2D g = new SVGGraphics2D(doc);// Do some drawing.
//    Shape circle = new Ellipse2D.Double(0, 0, 50, 50);
//    g.setPaint(Color.red);
//    g.fill(circle);
//    g.translate(60, 0);
//    g.setPaint(Color.green);
//    g.fill(circle);
//    g.translate(60, 0);
//    g.setPaint(Color.blue);
//    g.fill(circle);
//    g.setPaint(Color.YELLOW);g.setPaint(Color.BLACK);
//    g.fill(new Rectangle(10, 10, 100, 100));g.draw(new Rectangle(10, 10, 100, 100));g.draw(new Line2D.Float(110, 55, 200, 55));g.draw(new Rectangle(200, 10, 100, 100));g.setSVGCanvasSize(new Dimension(800, 300));// Populate the document root with the generated SVG content.Element root = doc.getDocumentElement();g.getRoot(root);//输出svg内容boolean useCSS = true; // we want to use CSS style attributesWriter out = new OutputStreamWriter(System.out, "UTF-8");g.stream(out, useCSS);// Display the document.JSVGCanvas canvas = new JSVGCanvas();JFrame f = new JFrame();f.getContentPane().add(canvas);canvas.setSVGDocument(doc);f.pack();f.setVisible(true);}
}

运行后效果

通过batik生成svg文件内容,并查看内容,我这里是输出到控制台,然后把内容复制放到svg文件中查看的效果

代码

package com.burns.batik.svg.test20220527_1;import org.apache.batik.anim.dom.SVGDOMImplementation;
import org.apache.batik.dom.GenericDOMImplementation;
import org.apache.batik.svggen.SVGGraphics2D;
import org.apache.batik.swing.JSVGCanvas;
import org.w3c.dom.DOMImplementation;
import org.w3c.dom.Document;
import org.w3c.dom.svg.SVGDocument;import javax.swing.*;
import java.awt.*;
import java.awt.geom.Line2D;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;public class TestSVGGen {public void paint(Graphics2D g) {
//        g2d.setPaint(Color.red);
//        g2d.fill(new Rectangle(10, 10, 100, 100));g.setPaint(Color.BLACK);
//    g.fill(new Rectangle(10, 10, 100, 100));g.draw(new Rectangle(10, 10, 100, 100));g.draw(new Line2D.Float(110, 55, 200, 55));g.draw(new Rectangle(200, 10, 100, 100));g.draw(new Line2D.Float(155, 55, 155, 155));g.draw(new Rectangle(105, 155, 100, 100));}public static void main(String[] args) throws IOException {// Get a DOMImplementation.DOMImplementation domImpl =GenericDOMImplementation.getDOMImplementation();DOMImplementation domImpl1 =SVGDOMImplementation.getDOMImplementation();// Create an instance of org.w3c.dom.Document.String svgNS = "http://www.w3.org/2000/svg";Document document = domImpl.createDocument(svgNS, "svg", null);// Create an instance of the SVG Generator.SVGGraphics2D svgGenerator = new SVGGraphics2D(document);// Ask the test to render into the SVG Graphics2D implementation.TestSVGGen test = new TestSVGGen();test.paint(svgGenerator);// Finally, stream out SVG to the standard output using// UTF-8 encoding.boolean useCSS = true; // we want to use CSS style attributesWriter out = new OutputStreamWriter(System.out, "UTF-8");svgGenerator.stream(out, useCSS);// Display the document.
//        JSVGCanvas canvas = new JSVGCanvas();
//        JFrame f = new JFrame();
//        f.getContentPane().add(canvas);
//        canvas.setSVGDocument((SVGDocument) document);
//        f.pack();
//        f.setVisible(true);}
}

运行后控制台输出

把内容复制放到svg文件

用浏览器查看svg文件

apache 的batik生成svg文件和通过swing界面查看效果相关推荐

  1. Apache batik 转换svg文件为jpeg/png/pdf

    所需主要架包: <!-- https://mvnrepository.com/artifact/org.apache.xmlgraphics/batik-transcoder -->< ...

  2. java使用batik转换svg文件

    svg是一种矢量图片格式,用来保存高保真的图片.我们可以用编辑器打开svg,我们可以看到svg文件其实就是一个xml文件,这种文件浏览器也可以识别.因此要查看svg用现成的浏览器就可以了.值得庆幸的是 ...

  3. python 绘制图表生成svg文件_python用Pygal如何生成漂亮的SVG图像详解

    前言 SVG可以算是目前最最火热的图像文件格式了,它的英文全称为Scalable Vector Graphics,意思为可缩放的矢量图形.它是基于XML(Extensible Markup Langu ...

  4. 在线生成.SVG文件

    原因:设计网站为了在不同分辨率的手机上达到最佳显示效果,就将图片转换成SVG矢量图,就上网找到了在线工具 1.SVG在线编译器 2.导入图片,再导出图片即可获得SVG文件

  5. 使用Batik操作SVG

    Batik简介 Batik是为想使用SVG来实现各种功能的应用程序的JAVA工具包.通过Batik,可以在任何使用JAVA的地方操作SVG文档,也可以利用Batik模块来在应用程序中或者Applet中 ...

  6. 【嵌入式基础】Keil下编译代码并生成HEX文件

    目录 一.Keil环境搭建 1.百度网盘分享下载 2.Keil安装 3.注册 4.支持包安装 二. 在Keil环境下创建新项目 1.创建新项目 2.命名新文件​编辑 3.芯片选择和环境配置 4.添加源 ...

  7. 使用Apache XML项目FOP生成PDF文件(上)

    使用Apache XML项目FOP生成PDF文件(上) 一.前言:在项目中遇到要把文档保存成PDF文件,在网上找了很久之方面的资料,终于发现了Apache的FOP项目有这个功能. 二.适合读者对象:想 ...

  8. android 生成 资源文件,SVG-Android开源库——SVG生成Vector资源文件的编辑预览工具...

    Vector矢量图在Android项目中的利用愈来愈广泛,但是如果你想用Android Studio自带的工具将SVG图片转化成Vector资源文件却是相当麻烦,首先能支持的SVG规范较少,其次操作流 ...

  9. Aspose-Cells结合Apache POI生成excel文件以及转换为pdf

    最近有个需求是需要将数据库中的符合条件的交易流水导出生成为excel,并转换为pdf,提供给客户下载,客户下载核对并签章. 需要用到的jar包依赖: <dependency><gro ...

  10. 1./app/logs/ 里面的日志只保留7天的(apache每天生成一个文件)

    2019独角兽企业重金招聘Python工程师标准>>> 1./app/logs/ 里面的日志只保留7天的(apache每天生成一个文件)  [root@centos6 ~]# vi ...

最新文章

  1. python3 中 is, is not ,==, != 的区别
  2. 习题1.9 有序数组的插入 (20 分)
  3. rabbitmq之partitions
  4. 数据增强,将数据增强后保存到本地
  5. 【赠书】新手速递!深度学习视频理解!
  6. Python3引号创建字符串
  7. java 简单事件的使用,如何正确的使用Java事件通知(1)
  8. 在html中标题字号一共有几种,HTML中常用的几种标签
  9. 基于自然语言识别下的流失用户预警
  10. 如何批量将 Txt 文本文档转换为 xlsx 格式的 Excel 文档
  11. 《人工智能:一种现代的方法》读书笔记之 智能Agent
  12. 2019CBA全明星周末举行正赛 南方明星队获胜
  13. 电路原理图(SCH)相关知识详解
  14. 【AR\VR开发基础】GLSL初步学习①
  15. MRS IoTDB时序数据库的总体架构设计与实现
  16. 珍惜在天堂和地狱溜达的每一天
  17. C语言简易程序设计————20、寻找完数
  18. 【转】如何让后端主动给web前端发数据
  19. CentOS删除文件且不删除/目录下所有
  20. 网络安全是怎样练成的.4——我们要到哪里去

热门文章

  1. OSG中读取shp数据
  2. 基于Go的挑战程序设计竞赛的进化之路①
  3. SPSS入门教程—相关性分析使用方法
  4. ztree 使用教程
  5. 谷歌浏览器Google Chrome离线安装包下载
  6. fortran调用MKL函数库中的gemm的fortran95接口计算矩阵相乘
  7. 《云计算核心技术剖析》mini书
  8. java私塾 代码_【整理】java私塾教程课后习题
  9. 三种方法生成随机数之GetTickCount篇
  10. 数学建模——层次分析法模型