pdf - 转换 - GLTF/STL/OBJ 文件格式为 PDF 页面的 U3D 文件
问题描述
我正在尝试将基于 three.js 的 3D 对象添加到 PDF 页面。似乎没有直接的出口商可以这样做。所以我正在尝试做以下事情,
- 将gltf/stl/obj文件转换为U3D文件
- 将.u3d 文件添加到 PDF 页面。
我正在尝试执行以下过程,但我不确定这种方法是否可行。如果有任何支持可用于执行以下任何一种转换,这将是一个很大的帮助。另外,如果您知道任何其他可能的方法,请更新我!
Input formats output format
GLTF
OBJ U3D
STL
(any
three.js supported
3D formats)
谢谢。
解决方案
将 three.js 图形导出为 PDF 的选项很少(静态内容不是动态 U3D 资产)
静态内容
使用从three.js webGL渲染器/画布渲染器获取渲染数据
toDataURL("image/jpeg")
,将MIME类型更改为JPG/PNG并将生成的流作为图像添加到PDF(这对我有用)和上面的方法一样,我们可以使用three.js svgrenderer 将渲染器内容导出为SVG 数据流,可以添加到PDF 中(纹理、网格可能无法100% 复制)
旧版 API - “threejs-pdf-renderer”可用于将 three.js 动画直接导出为 PDF。我们不需要任何其他依赖项来创建 PDF。但这是一个使用旧版three.js 的旧版API,需要做很多工作才能使API 与最新的three.js 版本兼容。
动态 3D 内容
我们可以将three.js的动画导出成一个U3D文件(目前还没有直接支持),这个U3D文件可以直接嵌入到PDF中。示例 - https://tetra4d.com/pdf-samples/
推荐阅读
- javascript - 值不会动态变化
- python - Unhashable 类型:'list',试图从列表中减去一个列表
- c# - 从 FileInfo 更改为 XElement 并需要流式传输数据
- reactjs - 尝试删除单个任务,但是当我尝试删除所有任务时
- r - 当给定 `newdata` 参数时,`glmRob()` 无法预测
- javascript - 将函数放入 addEventListener 与使用 function(){ function();} 作为 javascript 中的第二个参数有什么区别?
- unity3d - 我如何解决使用 MRTK 获取我的手位置的代码的这个问题?
- ansible - 在 Ansible playbook 中指定多个默认组作为主机
- sql - 比较带前导零的两个字段
- c# - 当所有参数都是公共的时,为什么我会收到“不一致的可访问性:参数类型...比方法更难访问”错误?