欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-10 20:01:06
...

公司需要做一个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的框架,以供参考.

相关标签: 代码实现 java