【发布时间】:2015-04-20 19:37:50
【问题描述】:
我想做的是:
我有一个 Asp Mvc 网站。在其中我需要创建一个执行以下操作的函数:
- 将 .dwg (AutoCad) 文件转换为 .pdf 文件
- 将 .dwg 文件转换为 .dwf 文件
我从我当时坚持的更简单的任务开始,将 .dwg 转换为 .pdf。经过一番研究,我发现一种方法(无需购买第 3 方许可证)是在服务器上安装 TrueView 并使用它(或实际上是 AcCtrl.dll)来转换文件。好吧,我这样做了。我安装了 True View 程序并添加了对 AcCtrl 组件 (ACCTRLLib) 的引用。然后我在我正在处理的类文件中添加了对 Dll 的引用:
using ACCTRLLib;
到目前为止一切顺利。之后我按照这篇文章的说明进行操作:PDF conversion using dwg true viewer in VB6
首先,这是我的代码:
public static void ConvertFile()
{
IAcCtrl contrl = new AcCtrl();
contrl.PutSourcePath(@"D:\MMA\Autocat\File1.dwg");
string[] pdfPath = new string[1] { @"D:\MMA\Autocat\File1.dwg" };
contrl.SilentPublish(pdfPath);
}
然后根据帖子,我去看看有没有指定路径的注册表。我作为注册表的路径如下:
HKEY_CURRENT_USER\Software\Autodesk\DWG TrueView\R13\DWGVIEWR-E001:409\Profiles\>\Dialogs\AcPublishDlg
所以,我用 ValueName: Location 和 ValueData: D:\MMA\Autocat\Testing 在其中创建了一个“字符串值”
好的。就是这样了。毕竟我运行了应用程序并调用了函数。调试器遍历代码,一切都执行了(或者至少看起来像这样),但什么也没有发生。我在 D:\MMA\Autocat\Testing 文件夹中没有文件。我没有例外,没有任何警告。它只是执行,没有任何反应。
那么我还尝试了什么。其中一些事情尝试起来可能有点天真或愚蠢,但我还是这样做了,因为我碰巧有点绝望。
我在控制台应用程序中尝试了所有方法。我不完全确定这种方法是否适用于 ASP MVC,所以我在控制台应用程序中尝试了相同的代码,不幸的是得到了相同的结果。
我在位置字符串值中添加了一个文件名。我将 Location ValueData 从 'D:\MMA\Autocat\Testing' 更改为 'D:\MMA\Autocat\Testing\testFile.pdf',因为我注意到在整个过程中都没有要求转换文件的文件名。
-
根据上一个结论的想法,我尝试将“结果”文件的路径提供给 SilentPublish 函数。
string[] pdfPath = new string[1] { @"D:\MMA\Autocat\Testing\testFile.pdf" }; contrl.SilentPublish(pdfPath);
再次无济于事。所以,我的问题,或者更确切地说,问题是:
是否可以这样做,如果这是我做错了什么? 如果不是,你能建议一种方法吗? 此外,如果可以进行 .dwg 到 .dwf 的转换(使用相同或不同的方法,我全神贯注)
非常感谢
【问题讨论】:
标签: c# asp.net-mvc pdf autocad