在Java中可以使用如下判断支持的字体
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironm
ent();
String[] fontFamilies = ge.getAvailableFontFamilyNames();
for (String s : fontFamilies) {
System.out.println(s);
}
在jdk15以后,只需在~/jre/lib/fonts/下建一个fallback目录,把你想在java中使用的字体烤贝到这个目录中即可
以下方法在fc6下测试通过,假设用户的jre路径为 /usr/java/jdk1.6.0_03/jre/
#cd /usr/java/jdk1.6.0_03/jre/lib/fonts
#sudo mkdir fallback
将C:\WINDOWS\Fonts\simsun.ttc拷贝到 /usr/java/jdk1.6.0_03/jre/lib/fonts/fallback文件夹内 ok!
String[] fontFamilies = ge.getAvailableFontFamilyNames();
for (String s : fontFamilies) {
System.out.println(s);
}
在jdk15以后,只需在~/jre/lib/fonts/下建一个fallback目录,把你想在java中使用的字体烤贝到这个目录中即可
以下方法在fc6下测试通过,假设用户的jre路径为 /usr/java/jdk1.6.0_03/jre/
#cd /usr/java/jdk1.6.0_03/jre/lib/fonts
#sudo mkdir fallback
将C:\WINDOWS\Fonts\simsun.ttc拷贝到 /usr/java/jdk1.6.0_03/jre/lib/fonts/fallback文件夹内 ok!
win7中没有,win2003 有simsun.ttc
测试程序
import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.font.FontRenderContext; import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; public class Test { public static void main(String[] args) throws Exception { int width = 100; int height = 100; System.err.println(System.getProperty("sun.jnu.encoding")); String s1 = "时段"; // String s2 = new String("你好".getBytes(System.getProperty("sun.jnu.encoding")), "UTF-8"); // String s3 = new String("你好".getBytes("GBK"), System.getProperty("sun.jnu.encoding")); // String s4 = new String("你好".getBytes(), System.getProperty("sun.jnu.encoding")); File file = new File("/home/image.jpg"); Font font = new Font("Serif", Font.BOLD, 10); BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics2D g2 = (Graphics2D) bi.getGraphics(); g2.setBackground(Color.WHITE); g2.clearRect(0, 0, width, height); g2.setPaint(Color.RED); FontRenderContext context = g2.getFontRenderContext(); Rectangle2D bounds = font.getStringBounds(s1 , context); double x = (width - bounds.getWidth()) / 2; double y = (height - bounds.getHeight()) / 2; double ascent = -bounds.getY(); double baseY = y + ascent; g2.drawString(s1, (int) x, (int) baseY); ImageIO.write(bi, "jpg", file); } }
相关推荐
在OpenCV库中,处理图像时我们经常需要在图片上添加文字信息,这...通过上述步骤,你可以在OpenCV的图像Mat中成功写入中文汉字。在实际应用中,你可以根据需求调整字体样式、颜色、位置等参数,以达到最佳的视觉效果。
总之,解决Java中PPT转PDF中文乱码问题的关键在于识别并统一文本形状的字体。通过遍历和修改文本属性,我们可以确保在转换过程中使用一致的字体,从而避免乱码现象。在实际应用中,可能需要根据具体需求和文件内容...
为了解决这个问题,我们需要确保系统包含所有PDF文档中引用的字体,或者在转换过程中正确地处理这些缺失的字体。 首先,我们需要理解PDF文档中的字体是如何工作的。PDF文档可能包含嵌入字体,这意味着字体数据直接...
在Linux环境下,由于字符编码的问题,中文字符可能会出现乱码,但通过特定的方法和库可以解决这个问题。 首先,`itext`是一个流行的Java库,用于处理PDF文档。它提供了创建、修改和操作PDF文档的功能。在URL转PDF的...
2. **CSS支持**:PD4ML支持CSS2.1规范,允许开发者通过CSS控制PDF文档的样式,包括字体、颜色、布局、图像对齐等。这意味着HTML页面的视觉效果可以在PDF中得到精确复制,极大地提高了输出文档的专业性和美观度。 3....
在Java项目中使用CSSBox,你需要首先将`cssbox-4.12`压缩包解压,引入对应的JAR文件到项目依赖中。然后,可以按照以下步骤实现网页截图: 1. 加载HTML内容:使用`HTMLEditorKit`或`InputStream`读取HTML字符串或...
标题中的“pd4ml技术html导出pdf,支持中文,兼容Linux”指的是一种使用Java库PD4ML将HTML内容转换为PDF文档的技术。PD4ML是一个强大的工具,它允许开发者通过简单的API调用来实现HTML到PDF的转换,并且特别强调了对...
由于Linux默认可能不包含某些中文字体,因此在渲染图形时可能会出现乱码。解决方法是在服务器上安装必要的中文字体,或者在jGraphX的渲染过程中指定可用的中文字体。 总的来说,实现这个功能需要对前端的mxGraph和...
它允许用户手动标注图像中的每个字符,生成所需的box文件,从而帮助Tesseract学习新的字体或文字样式。这对于那些标准字体库无法涵盖的特殊字符或手写体尤其有用。 **4. 应用场景** Tesseract OCR广泛应用于各种...
在处理中文报表时,IReport可能会遇到字符编码或字体兼容性问题,导致中文乱码。为了解决这个问题,需要修改`com.lowagie.text.pdf.DefaultFontMapper`类中的`awtToPdf`方法,具体是在该方法中指定中文使用的字体...
.png”可能提供了一步一步的可视化指南,指导用户如何解决在使用GB2312编码过程中遇到的问题,比如字体不兼容、乱码等问题,或者在特定软件中启用GB2312编码的设置方法。 总的来说,这个压缩包可能是为了帮助用户...
本文将深入探讨一个名为"word2pdfUtil"的Java工具类,它支持Windows和Linux系统,无需安装Office,实现了高效便捷的Word到PDF的转换。 首先,让我们了解为什么需要进行Word到PDF的转换。Word文档虽然在编辑和格式...
通过详细步骤和参数设置,指导用户在Windows和Linux环境下安装及使用SWFTools,并解决中文乱码问题。" 【标签】: "PDF Flash" **详细内容:** SWFTools是一款用于处理Flash SWF文件的工具集合,它包含了多个实用...
如果PDF中的文本是以图像形式存在,转换器可能无法识别,导致转换失败或出现乱码。 - **格式丢失**:由于TXT不支持格式化,所有字体、颜色、布局等信息都会丢失,只保留原始文本内容。 - **编码问题**:确保PDF和TXT...
这个扩展库包含了额外的字体和编码支持,特别是对于中文、日文和韩文等亚洲语言,确保在PDF中正确显示这些语言的字符,避免乱码或显示不全的问题。 3. **HTML到PDF转换**:在现代Web开发中,将HTML页面转换为PDF...
它可以在Windows和Linux操作系统下正确地处理Excel文件。 下面是具体的实现代码: ```java package test; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io....
PDF文件由多个对象组成,包括字体、图像、文本块等,转换过程就是提取其中的文本内容并忽略其他元素。 1. **手动转换方法**: - **在线转换器**:互联网上有许多免费和付费的在线PDF转TXT服务,如SmallPDF、Adobe...
如果是Microsoft Word中的乱码问题,可以尝试更改Word的字体设置或更新Word版本。 --- #### 五、索引超出矩阵尺寸错误 **问题:** “Index exceeds matrix dimensions” 是什么意思? **解答:** 当MATLAB报告 ...