aspose-cad-for.java:部分DWG文件转PDF时导致服务器卡死的问题

软件:aspose-cad-for.java
问题:部分图纸在从dwg转成PDF文件时,导致转换工具所在服务器进程卡死,CPU占用率达到100%以上。
问题图纸: 链接:https://pan.baidu.com/s/1IMlV69lyCp8ZTFyx4RjiKg?pwd=mbdt
提取码:mbdt

@wdd,
你好,
不幸的是,我们无法下载您的文件(在不同的 PC 和浏览器上测试过),点击“下载”按钮后没有任何反应。 请考虑其他一些文件共享服务。 如果文件很少并且问题是相同的,我想,我们只需要其中一个来重现问题。

@Oleksii.Gorokhovatskyi
您好,有问题的文件非常大,超出了上传的限制,可以给我您的邮件吗?我邮件发给您。

@Oleksii.Gorokhovatskyi
我把有问题的图纸文件传到了onedrive上,您试试能否下载。
地址:https://1drv.ms/u/s!Aj6mg7FMuzl_gqAgBo6YCZtWBVJ6KQ?e=k37T9R

@wdd,
谢谢,我明白了。
我试过这段代码 (v.22.7):

CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
cadRasterizationOptions.setPageWidth(1200);
cadRasterizationOptions.setPageHeight(1200);
cadRasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor);
ImageOptionsBase pdfOptions = new PdfOptions();
pdfOptions.setVectorRasterizationOptions(cadRasterizationOptions);
cadImage.save(out, pdfOptions);

结果在这里:90eb6fb311784d0cacc696569c356007.dwg_java_.pdf (718.2 KB)

我可以观察到处理器使用率在出口时不时很高。 你能在你的机器上成功导出这个文件吗?

@Oleksii.Gorokhovatskyi
我这边没法导出这个文件, 一般运行10几分钟都转不出来,CPU一直在超负荷运行,我们就会手动把这个进程停掉了,以防机器出现问题。您那边是用了多久转出PDF的呢?这个问题困扰我们很久了,可以修复吗?

@wdd,
在我的电脑上大约需要 1 分钟。 请注意,我还在上面的示例中删除了额外的一行,但这并不影响结果。

我创建了 CADJAVA-10841 来解决这个问题,至少我们会测量最慢处理的来源是什么来优化它。

我们需要您的帮助,因为现在我无法准确重现此问题。 您能否创建并附加一个仅包含您的导出的空演示项目,以便我们运行它并查看问题? 可能您正在使用一些会减慢导出速度的选项。 例如,这可能与您使用的 Java 应用程序类型有关。

@Oleksii.Gorokhovatskyi
您说的演示项目指的是什么,具体需要我做些什么?
这个是我们调用的代码:5317112dfa9d660073fe99f7675a67c.png (29.8 KB)
我们用的 aspose-cad-for.java的版本是20.9。

@wdd,
你能试试最新的22.7版本吗?

@Oleksii.Gorokhovatskyi
您好,我们在22.7的版本上尝试了,但是没有转出来PDF文件,不过CPU的使用率的情况比之前好一点了。有如下报错 ,您看下是什么原因。
转换报错.zip (685 Bytes)

@wdd,
你好,
我仍然没有看到您的代码和 22.7 有问题。 转换现在需要 2 分钟(与我上面的代码示例相比,导出选项的大小更大)。 请使用此文件创建一个空项目并导出,以便我们可以看到错误,我们需要能够在我们这边重现该问题。

@Oleksii.Gorokhovatskyi
您好,
我们在22.7版的环境尝试了其他在20.9的版本上能转成功的图纸,也没法转成功,转换的代码都是一样的,只有使用的版本不一样。
这是我们这边20.9版本的项目,您帮忙运行下,排查一下问题,您也可以在此项目里调用22.7版试一下转换效果,我们这边用这个代码调用22.7版会报错,报错的信息之前发给过您。转换报错.zip (685 Bytes)

项目网盘地址:https://1drv.ms/u/s!Aj6mg7FMuzl_grVbwIXBj2VUYm73bA?e=1erJxF

@wdd,
嗨,谢谢,我们将对此进行测试,我会在获得更多信息后尽快回来。

@wdd,
你好,
你能在你身边试试这个项目吗:https://1drv.ms/u/s!AkGCvrFCW5k8gQcP5-kwylEUmX-C?e=rmYVhD

@Oleksii.Gorokhovatskyi
您好,
我们运行了这个项目(v22.7),但是还是会有之前的报错,并且无法转出PDF文件。
这个是报错信息:报错信息.zip (539 Bytes)

@wdd,
你好。
当我们运行它时,我们这边没有问题。 您可以在 src\main\resources\pdf 中看到导出的结果。 请逐步向我们提供屏幕截图,说明您是如何运行该项目的。 这是什么操作系统?

@Oleksii.Gorokhovatskyi
您好,
给您录了一个运行的视频,用相同的运行环境,相同的图纸,在不同版本的 aspose-cad-for.java上进行转PDF的操作。
V20.9版本运行可以成功转出PDF文件,运行视频:v20.9运行视频.zip (4.7 MB)
v22.7版本运行不可以成功转出PDF文件,运行视频:V22.7运行视频.zip (2.1 MB)
测试图纸:测试图纸.zip (12.1 KB)
操作系统:macOS 10.15.7 操作系统.png (39.6 KB)

@wdd,
你好。

在上一个视频中,您使用的是其他文件“a.dwg”,而之前我们讨论过“90eb6fb311784d0cacc696569c356007.dwg”。 我们不要把不同的问题混在一起。

  1. 您是否确认了“90eb6fb311784d0cacc696569c356007.dwg”和我们在 Mac OS 上的最后一个项目的初始问题(“Error during PDF export:”)?
  2. 您现在是否向我们展示“a.dwg”的其他加载问题?

如果您可以使用我们上一个项目在 Windows 上检查这两个文件,这对我们很有帮助。

我们正在为 Mac OS 检查这些问题,我会返回结果。 即将推出的 22.9 也解决了 Mac OS 的一些问题。

@Oleksii.Gorokhovatskyi
嗨,
我们在linux系统中的上一个项目环运行“90eb6fb311784d0cacc696569c356007.dwg”这个文件,也会有转出报错“Error during PDF export:”。linux运行报错.zip (531 Bytes)
我们这边没有windows环境,麻烦您也试下在linux和Mac OS系统中运行这个项目看看有没有报错,能解决这两个系统上的运行问题,就可以解决我们的问题!

@wdd,
明白了,谢谢,我们正在努力。