dwg:
4.营沙壕煤矿综合柱状图2.zip (293.0 KB)
版本是19.9;
代码:
soyuan.zip (3.2 KB)
@zhuyl1006,
你好。
出现这种情况是因为绘图包含两个部分之间的距离很大(请参见 screen.png),您可以使用 ZOOM EXTENTS 来验证这一点。 因此,绘图尺寸很大,而 PDF 中的结果却很小。
screen.png (21.8 KB)
意思是dwg图中包含俩个元素之间距离特别远吗?这种怎么解决呢?我无法更改这个dwg图
因为dwg是用户要上传的,我无法让客户去把一个dwg分开导出。这样就没有其他办法了吗?
@zhuyl1006,
恐怕没有其他办法了。 您也可以仅导出部分绘图,但您需要事先知道其坐标,例如:
final CadImage cadImage = (CadImage) Image.load(fileInputStream);
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.setNoScaling(true);
Point topLeft = new Point(37274861, 4310927); // left part
//Point topLeft = new Point(92850771, 8695223); // right part
// size of rectangle
int width = 520; // 55255 - right
int height = 1925; // 57819 - right
CadVportTableObject newView = new CadVportTableObject();
// note: exactly such table name is required for active view
newView.setName("*Active");
newView.setCenterPoint(new Cad2DPoint(topLeft.getX() + width / 2f, topLeft.getY() - height / 2f));
newView.setViewHeight(height);
newView.setViewAspectRatio(width / height);
// search for active viewport and replace it
for (int i = 0; i < cadImage.getViewPorts().size(); i++)
{
CadVportTableObject currentView = (CadVportTableObject)(cadImage.getViewPorts().get_Item(i));
if ((currentView.getName() == null && cadImage.getViewPorts().size() == 1) ||
currentView.getName().toLowerCase().equals("*active"))
{
cadImage.getViewPorts().set_Item(i, newView);
break;
}
}
rasterizationOptions.setBackgroundColor(Color.getBlack());
rasterizationOptions.setPageWidth(width);
rasterizationOptions.setPageHeight(height);
rasterizationOptions.setAutomaticLayoutsScaling(true);
rasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor);
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setVectorRasterizationOptions(rasterizationOptions);
cadImage.save(pdfName, pdfOptions);
请注意,此示例适用于最新的 23.10,因为 19.9 已经很旧了。