我的转换代码参数 设置 大概如下:
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 异常,有的是漏图有的是文字不显示,有的是图形异常,有的是丢失图片
- 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)









