添加jar
<dependency> <groupId>org.ofdrw</groupId> <artifactId>ofdrw-converter</artifactId> <version>1.9.4</version> </dependency>
转图片
public class HelloWorld { public static void main(String[] args) { // 1. 文件输入路径 Path src = Paths.get("发票示例.ofd"); // 2. 加载指定目录字体(非必须) // FontLoader.getInstance().scanFontDir(new File("src/test/resources/fonts")); // 3. 创建转换转换对象,设置 每毫米像素数量(Pixels per millimeter) ImageMaker imageMaker = new ImageMaker(new OFDReader(src), 15); for (int i = 0; i < imageMaker.pageSize(); i++) { // 4. 指定页码转换图片 BufferedImage image = imageMaker.makePage(i); Path dist = Paths.get("target", i + ".png"); // 5. 存储为指定格式图片 ImageIO.write(image, "PNG", dist.toFile()); } } }
转pdf
public class HelloWorld { public static void main(String[] args) { // 1. 文件输入路径 Path src = Paths.get("发票示例.ofd"); // 2. 转换后文件输出位置 Path dst = Paths.get("发票示例.pdf"); try { // 3. OFD转换PDF ConvertHelper.toPdf(src, dst); System.out.println("生成文档位置: " + dst.toAbsolutePath()); } catch (GeneralConvertException e) { // GeneralConvertException 类型错误表明转换过程中发生异常 e.printStackTrace(); } } }
转svg
public class HelloWorld { public static void main(String[] args) { // 1. 文件输入路径 Path src = Paths.get("发票示例.ofd"); // 2. 加载指定目录字体(非必须) // FontLoader.getInstance().scanFontDir(new File("src/test/resources/fonts")); // 3. 创建转换转换对象,设置 每毫米像素数量(Pixels per millimeter) SVGMaker svgMaker = new SVGMaker(new OFDReader(src), 20); for (int i = 0; i < imageMaker.pageSize(); i++) { // 4. 指定页码转换SVG,得到SVG(XML) String svg = svgMaker.makePage(i); Path dist = Paths.get("target", i + ".svg"); // 5. 存储到文件。 Files.write(dist, svg.getBytes()); } } }