Aspose.cad java 25.10 将 DWG 转换为 SVG 出现文字、图片丢失及渲染异常问题

我的转换代码参数 设置 大概如下:

        File outputFile = new File(outputFilePath);
        try {
            LoadOptions opts = new LoadOptions();
            opts.setSpecifiedEncoding(CodePages.SimpChinese);
            final CadImage cadImage = (CadImage)Image.load(inputFilePath, opts);
            try {
                cadImage.updateSize();
                //cadImage.setDefaultFont("simsun");

                // 记录 CAD 文件信息,帮助诊断
                logger.info("CAD 文件信息 - 宽度: {}, 高度: {}, 单位类型: {}, 布局数: {}",
                    cadImage.getWidth(), cadImage.getHeight(),
                    cadImage.getUnitType(), cadImage.getLayouts().size());

                RasterizationQuality rasterizationQuality = new RasterizationQuality();
                rasterizationQuality.setArc(RasterizationQualityValue.High);
                rasterizationQuality.setHatch(RasterizationQualityValue.High);
                rasterizationQuality.setText(RasterizationQualityValue.High);
                rasterizationQuality.setOle(RasterizationQualityValue.High);
                rasterizationQuality.setObjectsPrecision(RasterizationQualityValue.High);
                rasterizationQuality.setTextThicknessNormalization(true);
                CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();

                cadRasterizationOptions.setPageWidth(cadImage.getWidth());
                cadRasterizationOptions.setPageHeight(cadImage.getHeight());
                cadRasterizationOptions.setBackgroundColor(Color.fromArgb(33,40,48));
                // 暂时只输出 Model,排除 Layout 干扰
                cadRasterizationOptions.setLayouts(new String[]{"Model"});
                cadRasterizationOptions.setExportAllLayoutContent(false);
//                cadRasterizationOptions.setLayouts(new String[] {"Model"});
//                Set<String> layoutNames = cadImage.getLayouts().keySet();
//                String[] allLayouts = layoutNames.toArray(new String[0]);
//                cadRasterizationOptions.setLayouts(allLayouts);
                cadRasterizationOptions.setUnitType(cadImage.getUnitType());
                cadRasterizationOptions.setAutomaticLayoutsScaling(false);
                cadRasterizationOptions.setNoScaling(false);
                cadRasterizationOptions.setQuality(rasterizationQuality);
                cadRasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor);
                cadRasterizationOptions.setVisibilityMode(VisibilityMode.AsScreen);
                cadRasterizationOptions.setExportAllLayoutContent(true);//启用所有图层和内容的导出
                cadRasterizationOptions.setContentAsBitmap(false);  // 保持矢量格式

1、dwg文件,我只保留了会出错的部分,其他内容因为保密已删去
2、我的cad客户端为中望CAD,打开均是正常。aspose.cad 转换文件为svg 异常,有的是漏图有的是文字不显示,有的是图形异常,有的是丢失图片

  1. CASE 1:图形显示错误、文字丢失
    OK:CASE1_OK_by_ZWCAD.png (6.9 KB)

    ERROR:CASE1_ERROR_by_AsposeCad.png (12.9 KB)

2. CASE 2:图片丢失
OK:CASE2_OK_by ZWCAD.png (2.8 KB)

ERROR:CASE2_ERROR_by_AsposeCad.png (5.0 KB)

3. CASE 3:文字丢失、文字显示成问号
OK:CASE3_OK_by_ZWCAD.png (14.0 KB)


ERROR:CASE3_ERROR_by_AsposeCad.png (21.2 KB)

4. CASE 4:线条丢失、图形错误
OK:CASE4_OK_by_ZWCAD.png (7.5 KB)

ERROR:CASE4_ERROR_by_AsposeCad.png (5.6 KB)

5. CASE 5:直接报错

似乎是因为文字中的空格导致报错.png (1.1 KB)


CASE5_ERROR.png (102.7 KB)

6. CASE 6: 丢失文字

OK (ZWCAD):CASE6_OK_by_ZWCAD.png (1.6 KB)


ERROR (Aspose.CAD):CASE6_ERROR_by_AsposeCad.png (2.3 KB)

所有源文件:

CASE-Source-File.zip (2.9 MB)

@lhtim,
您好,
感谢您提供所有详细信息。我已经在CAD主论坛分支中回复了。