感谢您的帮助和支持。
C# CAD文件:
文件.zip (432.0 KB)
使用以下代码,输出的PDF为什么有3个,为什么输出的PDF第一页不是CAD文件的大小。
// 加载CAD文件
Aspose.CAD.Image image = Aspose.CAD.Image.Load(@“E:\桌面\CAD\1.dwg”);
// 设置PDF选项(这里可以根据需要设置更多选项)
Aspose.CAD.ImageOptions.PdfOptions pdfOptions = new Aspose.CAD.ImageOptions.PdfOptions();
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
rasterizationOptions.PageWidth = 1600; // 设置页面宽度,单位通常是像素
rasterizationOptions.PageHeight = 1600; // 设置页面高度,单位通常是像素
rasterizationOptions.DrawType = CadDrawTypeMode.UseObjectColor; // 设置绘图类型,这里使用对象颜色
//rasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor); // 使用对象颜色进行绘图
pdfOptions.VectorRasterizationOptions = rasterizationOptions;
// 保存为PDF
image.Save(@“E:\桌面\CAD\1.pdf”, pdfOptions);
Console.WriteLine(“CAD文件已成功转换为PDF!”);
@fhn123456
在使用Aspose.CAD将CAD文件转换为PDF时,您提到输出的PDF文件数量为三个,并且第一页的大小与CAD文件不符。这种情况可能与以下几个因素有关:
-
多个布局:CAD文件可能包含多个布局或视图。在转换过程中,Aspose.CAD会为每个布局生成一个PDF页面。如果您只想导出特定的布局,可以在设置CadRasterizationOptions
时指定要导出的布局。例如,您可以使用rasterizationOptions.Layouts = new string[] { "Model" };
来仅导出模型布局。
-
页面尺寸设置:您设置的页面宽度和高度(1600像素)可能与CAD文件的实际尺寸不匹配。您可以通过调整PageWidth
和PageHeight
属性来更好地适应CAD文件的尺寸,或者使用AutomaticLayoutsScaling
属性来自动调整布局的缩放。
-
内容缩放:如果您希望保持CAD图形的原始比例,可以设置rasterizationOptions.NoScaling = true;
,这样可以避免在转换过程中对内容进行缩放。
以下是一个示例代码,展示如何设置这些选项:
// 加载CAD文件
Aspose.CAD.Image image = Aspose.CAD.Image.Load(@"E:\桌面\CAD\1.dwg");
// 设置PDF选项
Aspose.CAD.ImageOptions.PdfOptions pdfOptions = new Aspose.CAD.ImageOptions.PdfOptions();
CadRasterizationOptions rasterizationOptions = new CadRasterizationOptions();
// 设置页面尺寸
rasterizationOptions.PageWidth = 1600;
rasterizationOptions.PageHeight = 1600;
rasterizationOptions.Layouts = new string[] { "Model" }; // 指定布局
rasterizationOptions.NoScaling = true; // 禁用缩放
pdfOptions.VectorRasterizationOptions = rasterizationOptions;
// 保存为PDF
image.Save(@"E:\桌面\CAD\1.pdf", pdfOptions);
Console.WriteLine("CAD文件已成功转换为PDF!");
通过以上设置,您应该能够控制输出的PDF文件数量和页面尺寸,以更好地符合CAD文件的原始设计。
如果您还有其他问题或需要进一步的帮助,请随时询问!
@fhn123456,
你好。
是的,如果你使用
rasterizationOptions.Layouts = new string[] { "Model" };
结果将仅包含 Model。
如果你使用
rasterizationOptions.NoScaling = true;
则绘图的唯一可见部分将被导出,我猜你不需要此选项。
但结果很小的主要原因是另一个。不幸的是,有时绘图内部包含不正确的尺寸,例如:EXTMAX = 304220.0000,23780.0000,0.0000(只读),这就是结果很小的原因。我们无法阻止这种情况,只能看到事实。您可以尝试在创建此绘图的软件中重新保存此绘图,有时它会有所帮助,或者您可以在导出之前使用此选项重新计算大小:
cadImage.UpdateSize();