无法使用 .Net 和 True View (AcCtrl) 将 .dwg 转换为 .pdf

Not able to Convert .dwg to .pdf using .Net and True View (AcCtrl)

我想做的是:

我有一个 Asp Mvc 网站。我需要在其中创建一个执行以下操作的函数:

我从我当时认为的更简单的任务开始,将 .dwg 转换为 .pdf。经过一番研究后,我发现一种方法(无需购买第三方许可证)是在服务器上安装 TrueView 并使用它(或者实际上是 AcCtrl.dll)来转换文件。好吧,我这样做了。我安装了 True View 程序并添加了对 AcCtrl 组件 (ACCTRLLib) 的引用。然后我在我正在处理的 class 文件中添加了对 Dll 的引用:

using ACCTRLLib;

到目前为止一切顺利。之后,我按照 post 上的说明进行操作: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);
}

然后,根据post,我去看看有没有指定路径的registry。我作为注册表的路径如下:

HKEY_CURRENT_USER\Software\Autodesk\DWG TrueView\R13\DWGVIEWR-E001:409\Profiles\<<\Unnamed Profile>>\Dialogs\AcPublishDlg

因此,我在其中创建了一个 'String Value',其中包含 ValueName: Location 和 ValueData: D:\MMA\Autocat\Testing

好的。就是这样了。毕竟我 运行 应用程序并调用了函数。调试器遍历代码并执行所有内容(或至少看起来是这样)但什么也没有发生。我在 D:\MMA\Autocat\Testing 文件夹中没有找到文件。我没有例外,没有任何警告。它只是执行,什么也没有发生。

那么我还尝试了什么。其中一些尝试可能有点天真或愚蠢,但我还是做了,因为我碰巧有点绝望。

  1. 我在控制台应用程序中尝试了一切。我不完全确定这种方法是否适合 ASP MVC,所以不幸的是,我用控制台应用程序尝试了相同的代码,得到了相同的结果。

  2. 我在位置字符串值中添加了一个文件名。我将 Location ValueData 从 'D:\MMA\Autocat\Testing' 更改为 'D:\MMA\Autocat\Testing\testFile.pdf' 因为我注意到在整个过程中没有任何地方要求转换文件的文件名。

  3. 根据我之前结论的想法,我尝试将 'result' 文件的路径提供给 SilentPublish 函数。

    string[] pdfPath = new string[1] { @"D:\MMA\Autocat\Testing\testFile.pdf" }; contrl.SilentPublish(pdfPath);

再次无济于事。所以,我的问题,或者更确切地说,问题是:

是否可以这样做,如果是我做错了什么? 如果不是,你能建议一种方法吗? 此外,如果 .dwg 到 .dwf 的转换是可能的(使用相同或不同的方法,我洗耳恭听)

非常感谢

True View 不公开 Autodesk.AutoCAD.PlottingServices 命名空间。您将需要 AutoCAD、RealDWG 或其他第三方的许可副本 API。

我不确定您是否仍然遇到这个问题,但您应该可以使用 Autodesk Forge API 来解决这个问题。可以通过简单的 HTTP 调用从任何语言进行调用。您必须先转换为 SVF,然后再从那里转换为 DXF 和 PDF。