DWG源文件太大无法上传 。java代码以及转换后的png文件如下
save.zip (4.7 KB)
活动,我以通过邮件发送源文件,请查收
@MNDFJ,
这种结果可以通过看到一些位于很远的实体来解释,从而使绘图的尺寸变得巨大(见附图)。 您可以在 AutoCAD 中执行 ZOOM EXTENTS 命令后看到它们。
entities.png (3.9 KB)
请问如何通过 Aspose.cad java 21.8 编写程序将这个dwg文件转换为能够清晰看到图像内容的png文件呢?使用给出的示例代码,转换得到对的png文件如下图,图像会变得看不清楚。
save.png (3.0 KB)
@MNDFJ,
不幸的是,这种尺寸的绘图可能会导致此问题。 改进可能包括切换到 PDF 文件格式而不是导出为光栅、删除远处的项目(最好在 AutoCAD 中,但也可以使用代码来完成,问题是如何识别这些实体)、使线条和文本变细,例如 图纸尺寸,它们会看起来很厚。
这是包含这些建议的简短示例:
final CadImage cadImage = (CadImage)Image.load(in);
List<CadBaseEntity> toRemove = new ArrayList<>();
for (CadBaseEntity be : cadImage.getEntities())
{
if (be.getTypeName() == CadEntityTypeName.DIMENSION)
{
CadDimensionBase dimension = (CadDimensionBase)be;
if (dimension.getDefinitionPoint().getY() >-10000)
{
toRemove.add(be);
}
}
}
for (CadBaseEntity be : toRemove)
{
cadImage.removeEntity(be);
}
cadImage.updateSize();
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.getQuality().setTextThicknessNormalization(true);
for (int i = 0, size = cadImage.getLayers().size(); i < size; i++)
{
CadLayerTable layer = (CadLayerTable) cadImage.getLayers().get_Item(i);
layer.setLineWeight((short) 0);
}
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
cadImage.save(pdfName, pdfOptions);
好的,感谢你的回复。
是否有尝试过对文件按实体聚类进行分割呢?