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");
  • 相关阅读:
    网络安全之常见攻击
    引入element-ui
    引入sass
    浏览器解析流程
    JDK8 HashMap--removeNode()移除节点方法
    JDK8 HashMap--treeify()树形化方法
    JDK1.8 HashMap--treeifyBin()方法
    二叉查找树ADT
    队列ADT

  • 原文地址:https://www.cnblogs.com/icebing/p/3093045.html
Copyright © 2011-2022 走看看