Dwg文件转pdf 空白的

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图

@zhuyl1006,
通常距离并不重要,但地块的大小却很重要。 对于巨大的绘图,结果可能很小。 不幸的是,似乎唯一的方法是将初始 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 已经很旧了。