DXF,DWG文件转为PDF格式所用组件

公司需要做一个CAD格式文件转化为pdf格式的组件,查阅相关资料后,确认了两个框架,一个aspose-cad,一个kajeba,两个组件权衡了一下之后,选择了使用aspose-cad来实现功能.

在导入aspose-cad包之后,直接调用即可.

 public static void main(String[] args) {

        String dataDir = "C:\\Users\\PascalLee\\Desktop\\demo\\pdf\\1.pdf";
        String srcFile = "C:\\Users\\PascalLee\\Desktop\\demo\\dxf\\turn.dxf";

        Image image = Image.load(srcFile);

        CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
        rasterizationOptions.setLayouts(new String[]{"Model"});
        rasterizationOptions.setNoScaling(true);
        //设置背景色
        rasterizationOptions.setBackgroundColor(Color.getWhite());
        //设置纸张的宽度和高度
        rasterizationOptions.setPageWidth(image.getWidth());
        rasterizationOptions.setPageHeight(image.getHeight());
        //设置图纸中图像居中
        rasterizationOptions.setPdfProductLocation("center");
        rasterizationOptions.setAutomaticLayoutsScaling(true);
        //设置图纸颜色使用源文件的颜色
        rasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor);
        //设置图纸尺寸大小
        SizeF sizeF = new SizeF();
        sizeF.setHeight(1.2F);
        sizeF.setWidth(2.3F);
        rasterizationOptions.setPageSize(sizeF);
        //设置图像沿哪个坐标旋转
        ObserverPoint observerPoint = new ObserverPoint();
        float yAngle = 180; //沿Y轴旋转的角度
        observerPoint.setAngleRotateY(yAngle);
        rasterizationOptions.setObserverPoint(observerPoint);
        //设置笔相关属性
        PenOptions penOptions = new PenOptions();
        penOptions.setStartCap(1);
        penOptions.setEndCap(1);

        PdfOptions pdfOptions = new PdfOptions();
        pdfOptions.setVectorRasterizationOptions(rasterizationOptions);

        image.save(dataDir + "conic_pyramid_out_.pdf", pdfOptions);

        pdfOptions.setRotation(2);
    }

上为常见的一些图像转化之后的设置部分.

总体来说,aspose-cad转化之后的效果非常好,哪怕放大缩小,都不会影响其失真.但是会有水印,想解决水印的方法就需要购买正规的aspose产品.另外,如果想使用kajeba的同学,可以直接上github上搜一下,有两个前辈写了关于kajeba的框架,以供参考.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值