求助:DWG转换PDF出错!

public static void dwgToPdf (String uuid, String fileName, String fileExtension) throws IOException
{
// 根据uuid得到文件在服务器的存储路径
String zipFilePath = StringUtils.format(“{}/{}”, getUploadPath(), uuid);

    // 如果文件不存在抛出异常
    File file = new File(zipFilePath);
    if (!file.exists())
    {
        throw new FileNotFoundException("文件在服务器上不存在!");
    }
    try(ZipFile zipFile = new ZipFile(zipFilePath))
    {
        List<FileHeader> headers = zipFile.getFileHeaders();
        if(headers.stream().noneMatch(x -> x.getFileName().toLowerCase().endsWith(".dwg")))
        {
            throw new FileNotFoundException("文件异常!");
        }
        if(headers.stream().anyMatch(x -> x.getFileName().toLowerCase().endsWith(".pdf")))
        {
            zipFile.removeFile(StringUtils.format("{}{}",fileName,".pdf"));
        }
        try(
                net.lingala.zip4j.io.inputstream.ZipInputStream zis = zipFile.getInputStream(zipFile.getFileHeader(StringUtils.format("{}{}",fileName,fileExtension)));
                BufferedInputStream bis = new BufferedInputStream(zis);
                ByteArrayOutputStream os = new ByteArrayOutputStream();
                BufferedOutputStream bos = new BufferedOutputStream(os);
        )
        {
            LoadOptions opts = new LoadOptions();
            opts.setSpecifiedEncoding(CodePages.Utf8);

            Image image = Image.load(bis, opts);

            CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
            cadRasterizationOptions.setBackgroundColor(Color.getWhite());
            cadRasterizationOptions.setScaleMethod(ScaleType.GrowToFit);

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

            image.save(bos, pdfOptions);
            bos.flush();

            ZipParameters parameters = new ZipParameters();
            parameters.setFileNameInZip(StringUtils.format("{}{}",fileName,".pdf"));

            try(
                    InputStream is = new ByteArrayInputStream(os.toByteArray());
                    BufferedInputStream bis2 = new BufferedInputStream(is)
            )
            {
                zipFile.addStream(bis2, parameters);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        catch (Exception e)
        {
            throw e;
        }
    }
    catch (Exception e)
    {
        throw e;
    }
}

1716803031326.png (2.5 KB)

@dream.xg,
你好,
请提供初始 DWG 文件,以便我们进行测试。

请问,出错文件怎么上传给你?

@dream.xg ,
您可以将其压缩并附在此处,如果太大,您可以通过电子邮件发送给我

无法转换.zip (1.1 MB)

@dream.xg,
不幸的是,我们可以确认这个问题,我们创建了 CADJAVA-11608 来解决它。

CADJAVA-11608哪里可以得到?

@dream.xg,
该修复将在未来的 Aspose.CAD for Java 版本之一中提供,您可以在此页面底部查看任务的状态。