zoukankan      html  css  js  c++  java
  • 基于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");
  • 相关阅读:
    26 转义符 re模块 方法 random模块 collection模块的Counter方法
    25 正则表达式
    24 from 模块 import 名字
    24 from 模块 import 名字
    24 from 模块 import 名字
    23 析构方法 items系列 hash方法 eq方法
    21 isinstance issubclass 反射 _str_ _new_ _len_ _call_
    20 属性, 类方法, 静态方法. python2与python3的区别.
    python(1)
    python之字符串格式化
  • 原文地址:https://www.cnblogs.com/icebing/p/3093045.html
Copyright © 2011-2022 走看看