java cad格式文件(dwg)转svg

  公司实习中,需要实现网页端的cad图纸格式转换为svg且显示。结合网上代码- -,最终完成。

不过还是有一点没有想明白,就是最后转换成svg格式的时候,保存路径如果我用了相对路径,就会报错说找不到路径位置,用了绝对路径也必须要事先将文件夹先创建好才可以找到路径,不知道有没有大佬可以帮我解答一下这点问题。

public static Map<String, Object> saveDwgToSvg(HttpServletRequest request) throws Exception {
        Map<String, Object> map = new HashMap<>();
        String path = "/home/upload" + request.getServletContext().getContextPath() + "/svg/";
        StandardServletMultipartResolver resolver = new StandardServletMultipartResolver();
        MultipartHttpServletRequest req = resolver.resolveMultipart(request);
        File saveDirectory = new File(path);
        MultipartFile file = req.getFile("file");
        if (!file.isEmpty()) {
            String dwg = "dwg";
            String sp = ".";
            if (!dwg.equals(file.getOriginalFilename().substring(file.getOriginalFilename().indexOf(sp) + 1))) {
                map.put("code", "0");
                map.put("msg", "请上传dwg格式文件");
                return map;
            }
            com.aspose.cad.Image cadImage = com.aspose.cad.Image.load(file.getInputStream());
            CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
            rasterizationOptions.setPageWidth(1600);
            rasterizationOptions.setPageHeight(1600);
            rasterizationOptions.setAutomaticLayoutsScaling(true);
            rasterizationOptions.setNoScaling(false);
            rasterizationOptions.setContentAsBitmap(true);
            rasterizationOptions.setLayouts(new String[]{"Model"});
            rasterizationOptions.setDrawType(1);

            SvgOptions svgOptions = new SvgOptions();
            svgOptions.setVectorRasterizationOptions(rasterizationOptions);

            // Set Graphics options
            rasterizationOptions.getGraphicsOptions().setSmoothingMode(SmoothingMode.HighQuality);
            rasterizationOptions.getGraphicsOptions().setTextRenderingHint(TextRenderingHint.AntiAliasGridFit);
            rasterizationOptions.getGraphicsOptions().setInterpolationMode(InterpolationMode.HighQualityBicubic);

            // Export to PDF by calling the Save method

            String prefixFilePath = CreateStrUtil.createStrForLengthTime(6) + "";
            String fileName = prefixFilePath + ".svg";
            cadImage.save("D:" + path + fileName, svgOptions);

            map.put("code", "1");
            map.put("msg", "上传成功");
            map.put("src", request.getServletContext().getContextPath() + path + fileName);
            return map;
        }
        map.put("code", "0");
        map.put("msg", "文件获取失败");
        return map;
    }

哦对了,还需要导入个文件才能正常使用,不知道为啥我的pom中找不到这个依赖,最后只好弄了个jar包放里面,最终能够正常运行,就是有点慢。= =

                                                                                                                                                                                       一枚萌新~

评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值