基于COM的矢量图像控件VectorDraw

VectorDraw Developer Framework (VDF) 是一个CAD图形引擎库,程序员可用于其应用程序的可视化。 通过所提供的功能,用户可以很轻松的创建、编辑、管理、导出和导入以及打印2D/3D的图形和图形文件。 VDF所采用的一种格式称为VDML(VDCL与VDML格式相同,只不过是压缩的)。此格式是基于XML的,支持定制的对象,不受构件版本的影响。 这个绘图引擎库还支持多种矢量和栅格格式的导入和导出,包括本机的SVG和PDF导出,它可以导出PDF中的图像。值得一提的是,VDF是完全面向对象 的,所以操作起来直观明了,非常容易上手。VDF支持.NET 2(包括ActiveX组件),它的第6个版本引擎是重新编写的,所有的集合算法都进行了重写。目前已经有 Windows CE 版本,并且推出了Sever授权。

VDF从6.11版开始在PrinterRender对象中新增了一个方法:ExportMultiPagePDF,这个方法可以输出多页PDF文件。下面跟大家列举两种多页打印PDF的应用技巧。

1、下面这个示例演示输出PDF文件单独页面的所有布局:

1
2
3
4
5
6
7
8
9
10
11
12
13
int numprinters = vdFramedControl.BaseControl.ActiveDocument.LayOuts.Count + 1;
vdPrint []printers = new vdPrint[numprinters];
int i = 0;
printers[i] = vdFramedControl.BaseControl.ActiveDocument.Model.Printer;
printers[i].PrintExtents();
printers[i].PrintScaleToFit();
i++;
foreach (vdLayout layout in vdFramedControl.BaseControl.ActiveDocument.LayOuts)
{
printers[i] = layout.Printer;
i++;
}
VectorDraw.Render.PrinterRender.ExportMultiPagePDF(new RenderFormats.PdfRender(), vdFramedControl.BaseControl.ActiveDocument, printers, @"C:\Documents and Settings\Administrator\Desktop\test.pdf");

2、如果你的绘图没有布局,只有模型,想把多个PDF页面中的模型打印出来,那请参考下面的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int numprinters = 2; //two pages = two regions
VectorDraw.Professional.vdObjects.vdPrint[] printers = new VectorDraw.Professional.vdObjects.vdPrint[numprinters];
int i = 0;
 
//set the first printer settings and printable area
printers[i] = new VectorDraw.Professional.vdObjects.vdPrint(vdFramedC.BaseControl.ActiveDocument.Model.Printer);
printers[i].PrintWindow = new VectorDraw.Geometry.Box(new VectorDraw.Geometry.gPoint(-2, -1), new VectorDraw.Geometry.gPoint(866, 1122));
printers[i].PrintScaleToFit();
 
//set the second printer settings and printable area
i++;
printers[i] = new VectorDraw.Professional.vdObjects.vdPrint(vdFramedC.BaseControl.ActiveDocument.Model.Printer);
printers[i].PrintWindow = new VectorDraw.Geometry.Box(new VectorDraw.Geometry.gPoint(-2, -1458), new VectorDraw.Geometry.gPoint(866, -330));
printers[i].PrintScaleToFit();
 
//Export to PDF
VectorDraw.Render.PrinterRender.ExportMultiPagePDF(new RenderFormats.PdfRender(), vdFramedC.BaseControl.ActiveDocument, printers, @"C:\testing\test1.pdf");
原文地址:https://www.cnblogs.com/icebing/p/3093045.html