不开源项目aspose.3d最新版23.10.0的一些科普

Aspose
placeholder image
admin 发布于:2024-09-27 16:50:01
阅读:loading

前面在摸索了Aspose的Cells、Words、Pdf等多款组件,分别是常见的Word/Excel/Pdf办公软件,闲下心来又继续了解了一下Aspose For Java语言的其他软件,经过一些持续的分析和摸索实践越来越多的将它们给科学化,即所有的软件(组件)均不修改任何jar包依赖,纯粹使用反射的形式来调用,也就是说在API的使用前进行一次特殊的代码注册,即可实现授权,全程不需要License之类的xml,或是文档无水印、或是文档页数限制、或是获取内容无限制,等等。

特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权)

1.基本介绍

本次实践的是Aspose.3D的23.10.0版本,它是一个功能强大的用于处理 3D 的开发工具包,如果有需要使用Java来操作 3D 文件的需求可以了解一下它。本次示例提供了将 3D 文件obj格式转换的简单示例,更多/更专业的API使用有疑问请自行转至官网查看或学习,示例参考如下几点:

(1)提供了生成将OBJ文件的示例,同时将其转换为:PDF、HTML、STL等格式的文件;

(2)提供了使用反射调用特定的class代码逻辑,无需修改原始的jar;

(3)科学使用的版本有23.10.0,不太懂这种3d格式的文件,转换为PDF也是空白,但是未科学使用前仍然是有水印的,科学使用后无水印(内容仍然是空白);

(4)需要注意这个示例需要JDK9的最低版本;

2.示例代码

public class AsposeThreeDReflectTest extends BaseTest {

    @Test
    public void test() throws Exception {

        RegisterThreeD.registerThreeD2310();

        //创建scene.obj
        {
            RectangleShape profile = new RectangleShape();
            profile.setRoundingRadius(0.3);
            LinearExtrusion extrusion = new LinearExtrusion(profile, 10) {{ setSlices(100); setCenter(true); setTwist(360); setTwistOffset(new Vector3(10, 0, 0));}};
            extrusion.setSlices(100);
            extrusion.setCenter(true);
            extrusion.setTwist(360);
            extrusion.setTwistOffset(new Vector3(10, 0, 0));
            // create a scene
            Scene scene = new Scene();
            scene.getRootNode().createChildNode(extrusion);
            // save 3D scene
            scene.save(super.getRootFile("aspose.3d/scene.obj"), FileFormat.WAVEFRONTOBJ);
        }
        //创建scene.stl
        {
            Scene scene = new Scene();
            scene.open(super.getRootFile("aspose.3d/scene.obj"));
            // 将场景保存为 STL 格式
            scene.save(super.getRootFile("aspose.3d/scene.stl"), FileFormat.STL_BINARY);
        }
        //转换为PDF
        {
            Scene scene = new Scene();
            scene.open(super.getRootFile("aspose.3d/scene.obj"));
            final PdfSaveOptions saveOptions = new PdfSaveOptions();
            scene.save(super.getRootFile("aspose.3d/scene.pdf"), saveOptions);
        }
        //转换为HTML
        {
            Scene scene = new Scene();
            scene.open(super.getRootFile("aspose.3d/scene.obj"));
            final Html5SaveOptions saveOptions = new Html5SaveOptions();
            scene.save(super.getRootFile("aspose.3d/scene.html"), saveOptions);
        }
    }

}

3.运行示例

运行效果.gif

(创建scene.obj)

image.png

(创建scene.stl)

4.其它说明

(1)`aspose.xxx`不是开源免费的使用,Github上有示例项目,包含了大量的示例,示例的结果就是生成了一些《Evaluation Warning》警告、水印、内容页数限制、内容文本限制等;

(2)aspose旗下有许多的产品,都是商业付费版本,常见于各种文档格式文件的操作,都需要商业授权使用,也基本都是支持多种编程语言的,如有Java、C++、.NET等等,官网也有多种在线示例;

(3)示例与相关文件下载:《源码下载与示例.zip》,注:下载并不包含具体的科学实现部分,只是源文件与示例输出文件;

(4)未涉及到过3d相关的文件,也不太懂这些格式,示例中输出的html无法直接运行,有JS报错,需要注释掉lookAt、position属性可以运行;切记,若直接使用浏览器打开`scene.html`将提示如下图所示:

image.png

需要使用http的形式访问运行,比如使用IDEA打开访问的示例效果如下:

运行效果.gif

(HTML示例运行,附件有完整清晰版)



 点赞


 发表评论

当前回复:作者

 评论列表


留言区