我很难将使用c#.net将cdr文件转换为jpgs进行预览。有人告诉我cdr文件嵌入了位图,有没有简单的方法来提取它?
现在我运行一个真正糟糕的解决方案,从我的应用程序,调用uniconvertor转换为svg,然后使用imagemagick将svg文件转换为jpg。有更好的方法吗?
答案 0 :(得分:7)
您需要将来自corelDRAW的类型库C:\Program Files (x86)\Corel\CorelDRAW Graphics Suite 13\Programs\CorelDraw.tlb
复制到/bin
文件夹中并创建对它的引用。完成此操作后,您应该能够将.CDR文件导出为多种不同的格式。下面的示例代码将.cdr转换为.png。
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CorelDRAW;
namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void Button1_Click(object sender, EventArgs e)
{
CorelDRAW.Application cdr =
new Application();
cdr.OpenDocument(@"C:\Users\user\Desktop\500074.cdr", 1);
cdr.ActiveDocument.ExportBitmap(
@"C:\Users\user\Desktop\newImage.png",
CorelDRAW.cdrFilter.cdrPNG,
CorelDRAW.cdrExportRange.cdrCurrentPage,
CorelDRAW.cdrImageType.cdrRGBColorImage,
0, 0, 72, 72,
CorelDRAW.cdrAntiAliasingType.cdrNoAntiAliasing,
false,
true,
true,
false,
CorelDRAW.cdrCompressionType.cdrCompressionNone,
null).Finish();
cdr.ActiveDocument.Close();
cdr.Quit();
}
protected void Page_Load(object sender, EventArgs e)
{
}
}
}
此代码会将.cdr转换为.pdf:
protected void Button2_Click(object sender, EventArgs e)
{
CorelDRAW.Application cdr =
new Application();
cdr.OpenDocument(@"C:\Users\user\Desktop\500074.cdr", 1);
cdr.ActiveDocument.PublishToPDF(@"C:\Users\user\Desktop\NewImage.pdf");
cdr.ActiveDocument.Close();
cdr.Quit();
}
答案 1 :(得分:2)
最后我刚用com interop导出图片,不得不安装coreldraw并引用CorelDRAW 15.0 Type Library,仍然不是最好的解决方案,但比我使用的那个更好
答案 2 :(得分:0)
我知道CDR文件格式规范和SDK可通过Corel Technology计划http://www.corel.com/servlet/Satellite/us/en/Content/1152796559574
获得