pom文件引入依赖
<!-- https://mvnrepository.com/artifact/com.aspose/aspose-cad -->
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-cad</artifactId>
<version>20.4</version>
</dependency>
这个jar包只有国外的maven中央仓库有,如果下载不下来,请到官网上下载jar,在本地导入依赖
下载地址:https://mvnrepository.com/artifact/com.aspose/aspose-cad/20.4
java核心代码如下:
import com.aspose.cad.Color;
import com.aspose.cad.Image;
import com.aspose.cad.imageoptions.CadRasterizationOptions;
import com.aspose.cad.imageoptions.JpegOptions;
import com.aspose.cad.imageoptions.PdfOptions;
import com.sun.collierycommon.utils.SmartStringUtil;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
/**
* @Description:CAD文件工具类
* @Author: Tarzan Liu
* @Date: 2020/1/8 14:23
*/
public class CADFileUtil{
/**
* 当前cad预览运行状态(保证cad预览线程,同步只有一个人操作)
*/
public static volatile boolean RUNNING = false;
/**
*方法描述 CAD文件转换为PDF流
* @param srcFile 选择CAD文件路径
* @param dataDir 保存pdf文件路径
* @author Tarzan Liu
* @date 2020年01月08日 15:08:50
*/
public static void CADFileToPDF(String srcFile,String dataDir){
Image objImage = Image.load(srcFile);
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
cadRasterizationOptions.setBackgroundColor(Color.getWhite());
cadRasterizationOptions.setPageWidth(1600);
cadRasterizationOptions.setPageHeight(1600);
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setVectorRasterizationOptions(cadRasterizationOptions);
objImage.save(dataDir + System.currentTimeMillis()+".pdf", pdfOptions);
}
/**
*方法描述 CAD文件转换为PDF流
* @param srcFile 选择CAD文件路径
* @author Tarzan Liu
* @date 2020年01月08日 15:08:50
*/
public static void CADFileToPDF(String srcFile){
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
cadRasterizationOptions.setBackgroundColor(Color.getWhite());
cadRasterizationOptions.setPageWidth(1600);
cadRasterizationOptions.setPageHeight(1600);
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setVectorRasterizationOptions(cadRasterizationOptions);
String[] str = SmartStringUtil.split(srcFile,".");
Image objImage = Image.load(srcFile);
objImage.save(str[0]+".pdf", pdfOptions);
}
/**
*方法描述 CAD文件转换为PDF流
* @param srcFile 选择CAD文件路径
* @author Tarzan Liu
* @date 2020年01月08日 15:08:50
*/
public static void CADFileToImage(String srcFile){
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
cadRasterizationOptions.setBackgroundColor(Color.getWhite());
cadRasterizationOptions.setPageWidth(1600);
cadRasterizationOptions.setPageHeight(1600);
JpegOptions jpegOptions = new JpegOptions();
jpegOptions.setVectorRasterizationOptions(cadRasterizationOptions);
String[] str = SmartStringUtil.split(srcFile,".");
Image objImage = Image.load(srcFile);
objImage.save(str[0]+".jpeg", jpegOptions);
}
/**
* 方法描述 CAD文件转换为PDF流
* @param inputStream 选择CAD文件流
* @author Tarzan Liu
* @date 2020年01月08日 15:08:50
*/
public static InputStream CADFileToPDF(InputStream inputStream) throws Exception {
RUNNING = true;
Image image = Image.load(inputStream);
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
cadRasterizationOptions.setBackgroundColor(Color.getWhite());
cadRasterizationOptions.setPageWidth(1600);
cadRasterizationOptions.setPageHeight(1600);
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setVectorRasterizationOptions(cadRasterizationOptions);
ByteArrayOutputStream out = new ByteArrayOutputStream();
image.save(out,pdfOptions);
return outputStreamConvertInputStream(out);
}
/**
* 方法描述 CAD文件转换为PDF(处理网络文件)
*
* @param netFileUrl 网络文件路径
* @return InputStream 转换后文件输入流
* @author Tarzan Liu
* @date 2020年01月08日 15:08:50
*/
public static InputStream convertNetFile(String netFileUrl) throws Exception {
// 创建URL
URL url = new URL(netFileUrl);
// 试图连接并取得返回状态码
URLConnection urlConnection = url.openConnection();
urlConnection.connect();
HttpURLConnection httpURLConnection = (HttpURLConnection) urlConnection;
int httpResult = httpURLConnection.getResponseCode();
if (httpResult == HttpURLConnection.HTTP_OK) {
return httpURLConnection.getInputStream();
}
return null;
}
/**
* 方法描述 outputStream转inputStream
* @param out
* @author Tarzan Liu
* @date 2020年01月08日 15:08:50
*/
public static ByteArrayInputStream outputStreamConvertInputStream(final OutputStream out) throws Exception {
ByteArrayOutputStream byteOut=(ByteArrayOutputStream) out;
return new ByteArrayInputStream(byteOut.toByteArray());
}
/* public static void main(String[] args) {
String srcFile="F:/file/工业广场平面图201809.dwg";
String dataDir="F:/file/";
long a= System.currentTimeMillis();
CADFileToPDF(srcFile);
// CADFileToImage(srcFile);
long b=System.currentTimeMillis();
System.out.println(b-a);
}*/
}