美文网首页
Java 提取OFD文件中的图片

Java 提取OFD文件中的图片

作者: 承诺一时的华丽 | 来源:发表于2023-03-11 01:44 被阅读0次

OFD是由工业和信息化部软件司牵头中国电子技术标准化研究院成立的版式编写组制定的版式文档国家标准,属于中国的一种自主格式,要打破政府部门和党委机关电子公文格式不统一,以方便的进行电子文档的存储、读取以及编辑。

  • 代码实现
import org.dom4j.*;
import org.ofdrw.reader.OFDReader;
import org.ofdrw.reader.ResourceManage;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;

public class OfdToImg {

    public static void main(String[] args) {
        // 打开OFD文件
        Path src = Paths.get("src/test/resources/ofd.ofd");
        try (OFDReader reader = new OFDReader(src);) {
            ResourceManage rm = new ResourceManage(reader);
            // 根据分页数量自行修改
            Document document = reader.getPage(1).getDocument();
            List<Node> nodes = document.selectNodes("//ofd:ImageObject");
            for (Node node : nodes) {
                String xmlText = node.asXML();
                Element element = DocumentHelper.parseText(xmlText).getRootElement();
                String refID = element.attribute("ResourceID").getValue();
                BufferedImage bufferedImage = rm.getImage(refID);
                String format = "png";      // 假设需要将图片保存为PNG格式
                File file = new File(refID + ".png");  // 指定保存的图片文件
                try {
                    ImageIO.write(bufferedImage, format, file); // 将图片写入文件中
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

注意自行修改页码,分页提取照片

相关文章

网友评论

      本文标题:Java 提取OFD文件中的图片

      本文链接:https://www.haomeiwen.com/subject/mexxrdtx.html