引入maven依赖
1、先将下载的jar文件放在项目根目录下
2、使用maven安装命令安装jar包
<!--mvn install:install-file -Dfile=aspose-cad-20.12.jar -DgroupId=com.aspose -DartifactId=aspose-cad -Dversion=20.12 -Dpackaging=jar --> <dependency> <groupId>com.aspose</groupId> <artifactId>aspose-cad</artifactId> <version>20.12</version> </dependency>
<!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --> <!--处理pdf--> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13</version> </dependency> <!--图片、txt转pdf依赖,ITextPdf,操作PDF文件的工具类--> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version> </dependency>
核心代码段
/**
* 将cad文件转换为pdf文件
*
* @param srcFile 原始cad文件路径
* @param dataDir 转换后的pdf文件路径
* @param pageSize 页面大小 A4 or A3
* @param pageOrientation 页面方向 portrait or landscape
* @throws Exception
*/
public static void CADFileToPDF(String srcFile, String dataDir, String pageSize, String pageOrientation) {
Image objImage = Image.load(srcFile);
CadImage cadImage = (CadImage) objImage;
//下面两句是为了解决缺失字体导致部分文字变为方框的问题
cadImage.setDefaultFont("仿宋");
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
//导出所有的布局:默认为false,导致只能导出第一个布局
cadRasterizationOptions.setExportAllLayoutContent(true);
// 设置颜色:默认黑白
cadRasterizationOptions.setBackgroundColor(Color.getWhite());
// 这一句是输出线条为彩色的关键
cadRasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor);
// 设置纸张大小,默认A4
float width = "A3".equals(pageSize) ? PageSize.A3.getWidth() : PageSize.A4.getWidth();
float height = "A3".equals(pageSize) ? PageSize.A3.getHeight() : PageSize.A4.getHeight();
//设置纸张方向,默认纵向,
SizeF size = "landscape".equals(pageOrientation) ? new SizeF(height, width) : new SizeF(width, height);
cadRasterizationOptions.setPageSize(size);
cadRasterizationOptions.setAutomaticLayoutsScaling(false);
cadRasterizationOptions.setNoScaling(false);
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setVectorRasterizationOptions(cadRasterizationOptions);
objImage.save(dataDir + System.currentTimeMillis() + ".pdf", pdfOptions);
}
public static void CADFileToPDF(String srcFile, String dataDir, String pageSize) {
CADFileToPDF(srcFile, dataDir, pageSize, "portrait");
}
public static void CADFileToPDF(String srcFile, String dataDir) {
CADFileToPDF(srcFile, dataDir, "A4", "portrait");
}
示例代码
public static void main(String[] args) {
String dirPath = "D:\\test\\test\\";
String outDirPath = "D:\\test\\test\\result\\";
Cad2Pdf.CADFileToPDF(dirPath + "test.dwg", outDirPath + "dwg-test.pdf");
}