JAVA 使用aspose.cad将dwg文件转PDF(每个布局转为一页)

 引入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");
    }


 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值