Browse Source

升级CAD转换组件、优化CAD转换方法

gaoxiongzaq 1 year ago
parent
commit
29b09965a3
2 changed files with 19 additions and 13 deletions
  1. 1 1
      pom.xml
  2. 18 12
      server/src/main/java/cn/keking/service/FileHandlerService.java

+ 1 - 1
pom.xml

@@ -32,7 +32,7 @@
         <ffmpeg.version>4.2.1-1.5.2</ffmpeg.version>
         <itextpdf.version>5.5.13.3</itextpdf.version>
         <httpclient.version>3.1</httpclient.version>
-        <aspose-cad.version>23.7</aspose-cad.version>
+        <aspose-cad.version>23.9</aspose-cad.version>
         <bcprov-jdk15on.version>1.70</bcprov-jdk15on.version>
         <juniversalchardet.version>1.0.3</juniversalchardet.version>
 

+ 18 - 12
server/src/main/java/cn/keking/service/FileHandlerService.java

@@ -11,11 +11,9 @@ import cn.keking.utils.UrlEncoderUtils;
 import cn.keking.utils.WebUtils;
 import cn.keking.web.filter.BaseUrlFilter;
 import com.aspose.cad.*;
+import com.aspose.cad.fileformats.cad.CadDrawTypeMode;
 import com.aspose.cad.fileformats.tiff.enums.TiffExpectedFormat;
-import com.aspose.cad.imageoptions.CadRasterizationOptions;
-import com.aspose.cad.imageoptions.PdfOptions;
-import com.aspose.cad.imageoptions.SvgOptions;
-import com.aspose.cad.imageoptions.TiffOptions;
+import com.aspose.cad.imageoptions.*;
 import com.aspose.cad.internal.Exceptions.TimeoutException;
 import com.itextpdf.text.pdf.PdfReader;
 import org.apache.commons.lang3.exception.ExceptionUtils;
@@ -40,10 +38,7 @@ import java.io.*;
 import java.net.URLDecoder;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.concurrent.*;
 import java.util.stream.IntStream;
 
@@ -337,13 +332,24 @@ public class FileHandlerService implements InitializingBean {
             LoadOptions opts = new LoadOptions();
             opts.setSpecifiedEncoding(CodePages.SimpChinese);
             Image cadImage = Image.load(inputFilePath, opts);
+            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.setBackgroundColor(Color.getWhite());
-            cadRasterizationOptions.setPageWidth(1400);
-            cadRasterizationOptions.setPageHeight(650);
-            cadRasterizationOptions.setAutomaticLayoutsScaling(true);
+            cadRasterizationOptions.setPageWidth(cadImage.getWidth());
+            cadRasterizationOptions.setPageHeight(cadImage.getHeight());
+            cadRasterizationOptions.setUnitType(cadImage.getUnitType());
+            cadRasterizationOptions.setAutomaticLayoutsScaling(false);
             cadRasterizationOptions.setNoScaling(false);
-            cadRasterizationOptions.setDrawType(1);
+            cadRasterizationOptions.setQuality(rasterizationQuality);
+            cadRasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor);
+            cadRasterizationOptions.setExportAllLayoutContent(true);
+            cadRasterizationOptions.setVisibilityMode(VisibilityMode.AsScreen);
             SvgOptions SvgOptions = null;
             PdfOptions pdfOptions = null;
             TiffOptions TiffOptions = null;