/// <summary> /// ファイルの変換処理を行います。 /// </summary> protected override void ConvertFile(FileConvertParameter parameter) { //作成するショートカットのパス string shortcutPath = parameter.DestConvertFileName; //ショートカットのリンク先 string targetPath = Parent.Parameter.DestFileName; //WshShellを作成 Type t = Type.GetTypeFromCLSID(new Guid("72C24DD5-D70A-438B-8A42-98424B88AFB8")); dynamic shell = Activator.CreateInstance(t); //WshShortcutを作成 var shortcut = shell.CreateShortcut(shortcutPath); //リンク先 shortcut.TargetPath = targetPath; //アイコンのパス shortcut.IconLocation = Parent.Parameter.DestFileName + ",0"; //作業フォルダ shortcut.WorkingDirectory = Path.GetDirectoryName(Parent.Parameter.DestFileName); //その他のプロパティも同様に設定できるため、省略 //ショートカットを作成 shortcut.Save(); //後始末 System.Runtime.InteropServices.Marshal.FinalReleaseComObject(shortcut); System.Runtime.InteropServices.Marshal.FinalReleaseComObject(shell); }
/// <summary> /// ファイルの変換処理を行います。 /// </summary> protected override void ConvertFile(FileConvertParameter parameter) { dynamic xlApp = null; dynamic xlBooks = null; dynamic xlBook = null; try { xlApp = Activator.CreateInstance(Type.GetTypeFromProgID("Excel.Application")); xlBooks = xlApp.Workbooks; try { xlBook = xlBooks.Open(parameter.SourceConvertFileName); } catch { throw new FileConvertException( string.Format(MessagesRes.UnreadableSourceFile, parameter.SourceFileName), parameter); } var directory = System.IO.Path.GetDirectoryName(parameter.DestConvertFileName); if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } xlBook.ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, parameter.DestConvertFileName); } catch (Exception e) { throw new FileConvertException( string.Format(MessagesRes.ConvertFailed, e.Message), parameter); } finally { xlBook?.Close(false); xlApp?.Quit(); if (xlBooks != null) { Marshal.FinalReleaseComObject(xlBooks); } if (xlApp != null) { Marshal.FinalReleaseComObject(xlApp); } } }
/// <summary> /// ExcelToPdf の新しいインスタンスを初期化します。 /// </summary> public ExcelToPdf(FileConvertParameter parameter) : base(parameter) { }
/// <summary> /// ファイルの変換処理を行います。 /// </summary> protected override void ConvertFile(FileConvertParameter parameter) { File.Copy(parameter.SourceConvertFileName, parameter.DestConvertFileName); }
/// <summary> /// FileCopy の新しいインスタンスを初期化します。 /// </summary> public FileCopy(FileConvertParameter parameter) : base(parameter) { }
/// <summary> /// Shortcut の新しいインスタンスを初期化します。 /// </summary> public FileShortcut(FileConvertParameter parameter) : base(parameter) { }