查看: 3212|回复: 5
收起左侧

[Tribon] c#.net调用tbprintsrv.dll,创建失败,求解决方法,谢谢大家

[复制链接]
发表于 2011-3-13 14:19 | 显示全部楼层 |阅读模式 来自: 中国上海
  1. using TBPrintSrv;

  2. DrawingTypes ftypes = new DrawingTypesClass();
  3. foreach (DrawingType ftype in ftypes)
  4. {
  5. comboBox1.Items.Add(ftype.Description );
  6. }
复制代码

周末闲来无事,决定用C#重写打印程序,但是在引用TBPRINTSRV.dll后,运行以上代码时,出现以下错误;
从 IClassFactory 为 CLSID 为 {29881CB8-A842-11D6-B779-0002B3257F44} 的 COM 组件创建实例失败,原因是出现以下错误: 80004005。

求高手出来指点,非常感谢
回复

使用道具 举报

龙船学院
发表于 2011-3-13 19:36 | 显示全部楼层 来自: 中国浙江舟山
tbprintsrv.dll 会是c#做的吗???期待高手
回复 支持 反对

使用道具 举报

发表于 2011-3-14 07:34 | 显示全部楼层 来自: 中国辽宁大连
正如楼上所说tbprintsrv.dll不是C#编写的,不能直接引用。应该引用TBPrintSrv的COM。
在Visual Studio里面的操作是,添加引用后选择COM,然后选TBPrintSrv。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-3-14 09:02 | 显示全部楼层 来自: 中国江苏苏州
回复 3# yang827
是的,就是这样操作的。但是这样运行后就报错了。所以很无奈。
回复 支持 反对

使用道具 举报

发表于 2011-3-14 14:03 | 显示全部楼层 来自: 中国辽宁大连
本帖最后由 yang827 于 2011-3-14 14:06 编辑

你的TBPrintSrv的调用方式不对啊,调用方式可以参考Document里面的文档。
我按照文档里面的Python例子,改写了下面的C#代码是好用的。
程序将PDB里面的图纸全部打印到OneNote虚拟打印机上。

  1. using System;using System.Collections.Generic;
  2. using System.Linq;
  3. using System.Text;

  4. using TBPrintSrv;

  5. namespace TribonPrint
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             TBApplication app = new TBApplication();
  12.             FindDrawings fnd = new FindDrawings();
  13.             PrintJob job = new PrintJob();
  14.             Printer prt = new Printer();
  15.             job.Drawings.AddDrawings(fnd.get_Drawings("*", "SB_PDB"));
  16.             job.Printer = prt;
  17.             job.Printer.SelectPrinter("发送至 OneNote 2010");
  18.             job.PrintOptions.PrintToFile = true;
  19.             job.PrintOptions.NameMask = "VBS*.PS";
  20.             if (job.Drawings.Count > 0)
  21.             {
  22.                 Console.WriteLine("Printing {0} drawings.", job.Drawings.Count);
  23.                 job.StartPrint();
  24.             }
  25.             else
  26.             {
  27.                 Console.WriteLine("No drawings found");
  28.             }
  29.             Console.WriteLine("End.");
  30.         }
  31.     }
  32. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-3-14 16:31 | 显示全部楼层 来自: 中国江苏苏州
回复 5# yang827

谢谢超人,我在构造函数里添加了new TBApPlication后),解决问题了。
非常感谢超人。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|标签|免责声明|龙船社区

GMT+8, 2024-9-20 22:57

Powered by Imarine

Copyright © 2006, 龙船社区

快速回复 返回顶部 返回列表