【Java&Linux】SVGConverter导出图片乱码、Linux配置中文字符集

4 篇文章 1 订阅
  • SVGConverter导出图片乱码

问题描述:svg文件正常显示中文,转换图片文件出现乱码,且仅在部分环境下异常

问题解决:查看操作系统,发现缺少中文字符集,查看/etc/sysconfig/i18n 配置发现仅支持英文。

  • Linux配置中文字符集

1、安装中文包:
#yum -y groupinstall chinese-support
2、修改字符编码配置文件
# vi /etc/sysconfig/i18n
修改后内容如下:
LANG="zh_CN.UTF-8"
SUPPORTED="zh_CN:zh:en_US.UTF-8:en_US:en:zh_CN.GB18030"
SYSFONT="latarcyrheb-sun16"
3、重启服务器:
#reboot

  • 中文字体

1.安装字体命令

yum -y install fontconfig

2.查看已安装字体

(1)查看linux已安装字体

fc-list

(2)查看linux已安装中文字体

fc-list :lang=zh

可以看出,linux默认字体是没有中文字体的,需要手动安装。

3.安装中文字体

(1)创建目录

   mkdir -p /usr/share/fonts/my_fonts

(2)将要安装的字体上传到该文件夹下

这里我们安装黑体常规,即simhei.ttf。

关于具体字体查找,我以windows为例。

  进入C:\Windows\Fonts,该文件夹下就存放相关字体,将simhei.tty拷贝到linux 目录/usr/share/fonts/my_fonts下即可

(3)安装字体索引指令

       yum install mkfontscale

(4)生成字体索引

      进入目录 cd  /usr/share/fonts/my_fonts,执行索引字体生成

       mkfontscale

4.查看黑体常规字体是否安装成功

fc-list :lang=zh,如下表示安装成功

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 


爱家人,爱生活,爱设计,爱编程,拥抱精彩人生!

### 回答1: Java SVG转Visio 是一种将SVG(可缩放矢量图形)文件转换为Visio文件的操作。SVG 是一种基于XML的矢量图形格式,而Visio是由Microsoft开发的流程图和矢量图形编辑软件。 在Java中进行SVG转Visio的过程需要使用相关的库和工具。首先,我们需要使用Java中的文件读取和写入操作,可以通过Java的IO类进行实现。然后,需要使用SVG解析库来解析SVG文件,可以使用Apache Batik或者svgSalamander等库来实现。这些库可以将SVG文件转换为Java中的对象模型,方便进行进一步的操作。 接下来,我们需要使用Visio的相关库和工具来创建和编辑Visio文件。Visio提供了COM接口和对象模型来实现对Visio文件的操作。我们可以使用Java的COM桥接技术(如jacob库)来连接Java和Visio的COM接口。通过这种方式,我们可以在Java中创建Visio文档,编辑图形对象,设置属性和样式等。最后,我们可以使用Visio的保存功能,将编辑后的图形保存为Visio文件。 总结来说,Java SVG转Visio 需要使用Java中的文件操作、SVG解析库和Visio的COM接口。通过这些工具和库,我们可以实现将SVG文件转换为Visio文件的操作。这个过程需要一定的技术知识和编程经验,但可以极大地方便用户在Java环境下进行SVG与Visio格式的转换。 ### 回答2: Java支持将SVG(可缩放矢量图形)格式转换为Visio(微软的矢量图形和图表创建工具)格式的操作。可以使用JavaSVG解析库,如Apache Batik来解析SVG文件,并提取出其中的图形元素和属性。 一旦SVG文件被解析后,可以使用Java创建Visio文件的库,如Aspose.Diagram来创建Visio文件。在创建Visio文件时,需要将SVG文件中的图形元素映射到Visio文档中的对应元素。这可以通过将SVG的图形坐标转换为Visio坐标,并将SVG的颜色和样式映射到Visio的颜色和样式来完成。 另外,还需要考虑SVG文件中的文本和字体,在转换为Visio时,需要将SVG中的文本转换为Visio的文本,并设置相应的字体属性。 在转换过程中,还需要处理SVG文件中可能存在的复杂路径和样式转换。这可能需要使用图形几何算法来解析和转换SVG的路径数据,并使用Visio的图形绘制函数来创建对应的图形。 最后,一旦Visio文件的所有元素都被创建,可以将其保存为Visio格式的文件,并在需要时进行进一步的编辑和使用。 总之,通过使用JavaSVG解析库和Visio创建库,可以实现将SVG格式转换为Visio格式的功能。这需要处理图形元素和属性的映射,包括坐标和样式转换,以及文本和字体的处理。转换的具体步骤将根据使用的库和需求而有所不同。 ### 回答3: 使用Java语言将SVG文件转换为Visio文件的方法有很多。其中一种常见的方法是使用第三方库Apache Batik。 Apache Batik是一个开源的Java库,提供了完整的SVG处理功能。要将SVG文件转换为Visio文件,可以按照以下步骤进行操作: 1. 导入Apache Batik库。可以通过在项目中添加依赖项或手动导入库文件的方式导入Batik库。 2. 创建SVG转换器对象。使用Batik库提供的SVG转换器对象(SVGConverter)来进行转换。可以使用SVGConverter类的构造函数创建一个新的转换器对象。 3. 配置转换器参数。使用转换器对象的setDestinationType()方法将目标类型设置为Visio类型。 4. 指定输入和输出文件。使用转换器对象的setSources()方法指定要转换的SVG文件路径,使用setDst()方法指定转换后的Visio文件保存路径。 5. 执行转换。使用转换器对象的convert()方法执行转换操作。 以下是一个简单的示例代码: ```java import org.apache.batik.apps.rasterizer.SVGConverter; import org.apache.batik.apps.rasterizer.SVGConverterException; public class SVGToVisioConverter { public static void main(String[] args) { // 创建SVG转换器对象 SVGConverter converter = new SVGConverter(); // 配置转换器参数 converter.setDestinationType(SVGConverter.VISIO); // 指定输入和输出文件 converter.setSources(new String[] { "input.svg" }); converter.setDst("output.vsd"); try { // 执行转换 converter.execute(); System.out.println("SVG转换为Visio成功!"); } catch (SVGConverterException e) { System.out.println("SVG转换为Visio出错:" + e.getMessage()); } } } ``` 以上代码中,将SVG文件"input.svg"转换为Visio文件"output.vsd"。 需要注意的是,由于Visio文件是微软专有格式,Apache Batik库只提供了对Visio的导出功能,而不支持直接读取和编辑Visio文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qqchaozai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值