|
@@ -1,9 +1,12 @@
|
|
|
package com.shkpr.service.alambizplugin.components;
|
|
|
|
|
|
+import com.aspose.cad.Color;
|
|
|
import com.aspose.cad.Image;
|
|
|
import com.aspose.cad.ImageOptionsBase;
|
|
|
+import com.aspose.cad.fileformats.ObserverPoint;
|
|
|
import com.aspose.cad.fileformats.cad.CadDrawTypeMode;
|
|
|
import com.aspose.cad.fileformats.cad.CadImage;
|
|
|
+import com.aspose.cad.fileformats.cad.cadobjects.polylines.CadPolyline3D;
|
|
|
import com.aspose.cad.imageoptions.*;
|
|
|
import com.global.base.log.LogLevelFlag;
|
|
|
import com.global.base.log.LogPrintMgr;
|
|
@@ -70,6 +73,10 @@ public class GisSurveyCadConverter {
|
|
|
//读取输入流
|
|
|
Image image = CadImage.load(inputStream);
|
|
|
|
|
|
+ //判断是否有3D线
|
|
|
+ boolean isCadPolyline3D = ((CadImage) image).getEntities().stream()
|
|
|
+ .anyMatch(entity -> entity instanceof CadPolyline3D);
|
|
|
+
|
|
|
//导出图像配置
|
|
|
ImageOptionsBase options;
|
|
|
switch (cadEnum) {
|
|
@@ -131,7 +138,7 @@ public class GisSurveyCadConverter {
|
|
|
options = new SvgOptions();
|
|
|
((SvgOptions) options).setTextAsShapes(false);
|
|
|
((SvgOptions) options).setUseAbsoluteRescaling(false);
|
|
|
- ((SvgOptions) options).setRescaleSubpixelLinewidths(false);
|
|
|
+ if (!isCadPolyline3D) ((SvgOptions) options).setRescaleSubpixelLinewidths(false);
|
|
|
break;
|
|
|
case THREE_DS:
|
|
|
options = new ThreeDSOptions();
|
|
@@ -159,11 +166,15 @@ public class GisSurveyCadConverter {
|
|
|
rasterizationOptions.setPageHeight(Math.max(image.getHeight(), cadConvertProperties.getRasterizationMinHeight()));
|
|
|
//使用原本颜色
|
|
|
rasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor);
|
|
|
+ //黑色背景
|
|
|
+ rasterizationOptions.setBackgroundColor(Color.getBlack());
|
|
|
//缩放配置
|
|
|
rasterizationOptions.setNoScaling(false);
|
|
|
rasterizationOptions.setAutomaticLayoutsScaling(true);
|
|
|
//质量配置
|
|
|
rasterizationOptions.getQuality().setTextThicknessNormalization(true);
|
|
|
+ //调整视角
|
|
|
+ if (isCadPolyline3D) rasterizationOptions.setObserverPoint(new ObserverPoint(1, 0, 0));
|
|
|
|
|
|
options.setVectorRasterizationOptions(rasterizationOptions);
|
|
|
|