使用 corel 绘图类型库在 C# 中自动执行编辑 cdr 文件的任务

问题描述 投票:0回答:1

更新: 我现在能够得到形状了, 只剩下插入文本了,我无法弄清楚插入文本的方法。 现在我在创建形状类的实例时遇到异常:

System.Runtime.InteropServices.COMException:“由于以下错误,检索 CLSID {A77D0076-C6D1-4D32-9F72-F3A62CE56578} 的组件的 COM 类工厂失败:80040154 类未注册 (0x80040154 (REGDB_E_CLASSNOTREG))。”

我有近 200 个 cdr 文件,其中包含一些形状,我还有一个名称列表。形状可以像矩形嵌套矩形一样嵌套。
我想生成该文件的新副本,其名称来自每个形状组中的列表(文本应该位于最里面的形状)。
然后我必须将该文件另存为 svg。

这是我到目前为止所尝试过的,但我无法找到此后该做什么的方法。

我使用了 Coreldraw 类型库,我能够打开 cdr 文件,但我无法弄清楚我应该查看 corelDraw 中文档的哪个属性来获取形状。
之前的问题也没有帮助我。

Type pia_type = Type.GetTypeFromProgID("CorelDRAW.Application");Application app = Activator.CreateInstance(pia_type) as Application;
app.Visible = true;
Document document = app.OpenDocument(@"Path_To_Cdr");

// Update : 
ShapeRange shapes = document.ActivePage.Shapes.FindShapes();   
foreach(Shape s in shapes)
{
       // this is giving exception 
       // System.Runtime.InteropServices.COMException: 'Retrieving the COM class factory for component 
       Shape newShape = new Shape()
       {
           // Text.Contents = "Eureka!!"
       };
       s.PlaceTextInside(newShape);  
}
svg reflection shapes coreldraw cdr
1个回答
0
投票

尝试

Shape newShape = s.Layer.CreateArtisticText(s.LeftX, s.CenterY, "Eureka");
© www.soinside.com 2019 - 2024. All rights reserved.