我不能將PPT轉換爲XPS或PNG爲PDF文件。PPT和PDF到XPS或PNG與C#
解決此問題的兩種方法是:
第一種方法:使用COM組件Microsoft。例如:
:Microsoft.Office.Interop.PowerPoint,Microsoft.Office.Core,...。
我的代碼:
private static void PPT2XPS()
{
Microsoft.Office.Interop.PowerPoint.Application powerpoint;
Microsoft.Office.Interop.PowerPoint.Presentation presentation;
Microsoft.Office.Interop.PowerPoint.Presentations presentations;
powerpoint = new Microsoft.Office.Interop.PowerPoint.Application();
presentations = powerpoint.Presentations;
presentation = presentations.Open(@"d:\test.ppt", MsoTriState.msoFalse, MsoTriState.msoTrue, MsoTriState.msoTrue);
Microsoft.Office.Interop.PowerPoint.Slides slides = presentation.Slides;
for (int i = 1; i <= slides.Count; i++)
{
Microsoft.Office.Interop.PowerPoint.Slide slide = slides[i];
String slideName = slide.Name;
releaseCOM(slide);
slide.Export(@"d:\test\" + i.ToString() + ".xps", "");
}
}
private static void releaseCOM(object o)
{
try
{
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(o);
}
catch { }
finally
{
o = null;
}
}
第二種方式:發送文件到
「Microsoft XPS文檔作家」 打印機使用進程。
我的代碼:
Process P = new Process();
ProcessStartInfo psInfo = new ProcessStartInfo();
psInfo.FileName = @"C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe";
string option = @"/t";
string xps = "Microsoft XPS Document Writer";
string targetFile = Path.GetDirectoryName(filename) + Path.DirectorySeparatorChar +
Path.GetFileNameWithoutExtension(filename) + @".xps";
string Myargs = String.Format("{0} \"{1}\" \"{2}\" {0} \"{3}\"", option, filename, xps, targetFile);
psInfo.CreateNoWindow = true;
psInfo.Arguments = Myargs;
psInfo.UseShellExecute = false;
psInfo.ErrorDialog = false;
P.StartInfo = psInfo;
P.Start();
P.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
第三條道路:使用API的Windows和發送二進制文件。 這是這樣的樣品:
我的問題:
第一種方式:已從與其基礎RCW分開COM對象不能用於
第二種方式:不能隱藏窗口和關閉窗口
第三種方式:無法創建XPS文件。 di.OutPutFile創建不良的[bad?]文件。