internal void AddPowerpointFile(string file) { if (file.EndsWith(".ppt") || file.EndsWith(".pptx") || file.EndsWith(".jpg")) { FilesToMerge.Add(file); } }
protected override void DoRun() { SetStatus(TaskStatus.Validating); bool hasError = false; string ext = null; foreach (var file in FilesToMerge) { var fi = new FileInfo(file); if (!fi.Exists) { hasError = true; LogError($"Can't find file {file}, abort."); } if (ext == null) { ext = fi.Extension; } else { if (!string.Equals(ext, fi.Extension, StringComparison.OrdinalIgnoreCase)) { hasError = true; LogError("Input files have different extentions, abort."); } } } if (hasError) { return; } SetStatus(TaskStatus.Merging); var listFile = Path.GetTempFileName(); var tempFileInfo = new FileInfo(Path.GetTempFileName()); var concatFile = tempFileInfo.FullName.Replace(tempFileInfo.Extension, ext); File.WriteAllLines(listFile, FilesToMerge.Select(x => $"file \'{x}\'").ToArray()); var mergeArg = $"-f concat -safe 0 -i \"{listFile}\" -c copy \"{concatFile}\""; LogInfo($"Task {TaskName} merge with arg:{mergeArg}"); if (_isCancelling) { return; } var exitCode = RunFfmpeg(mergeArg); if (exitCode != 0) { Status = TaskStatus.Failed; LogError($"Task {TaskName} merge failed ({exitCode}), abort."); return; } if (_isCancelling) { return; } RunConvert(concatFile); }
public async Task <string> MergeFiles(FilesToMerge filesToMerge) { var mergedFile = UglyToad.PdfPig.Writer.PdfMerger.Merge(filesToMerge.StarterFile, filesToMerge.FileToAdd); await File.WriteAllBytesAsync($"{filesToMerge.SaveLocation}\\{filesToMerge.SaveName}", mergedFile); var newPdfName = $"{filesToMerge.SaveLocation}\\{filesToMerge.SaveName}"; return(newPdfName); }
internal int MovePPTDown() { var i = FilesToMerge.IndexOf(FilesToMerge_Selected); if (i >= 0 && i < (FilesToMerge.Count - 1)) // -1 bc. at the last position you cannot go further down { var selected = FilesToMerge_Selected; FilesToMerge.RemoveAt(i); FilesToMerge.Insert(i + 1, selected); i++; } return(i); }
internal int MovePPTUp() { var i = FilesToMerge.IndexOf(FilesToMerge_Selected); if (i > 0) { var selected = FilesToMerge_Selected; FilesToMerge.RemoveAt(i); FilesToMerge.Insert(i - 1, selected); i--; } return(i); }
internal void RemoveSelectedPowerpointFile() { if (String.IsNullOrEmpty(FilesToMerge_Selected)) { System.Windows.MessageBox.Show("No File to remove selected"); return; } else { if (FilesToMerge.Contains(_FilesToMerge_Selected)) { FilesToMerge.Remove(FilesToMerge_Selected); } } }
protected override bool DoCanRun() { return(FilesToMerge.Any()); }
public async Task <IActionResult> MergePdfFiles(FilesToMerge filesToMerge) { var mergedFile = await _mergePdf.MergeFiles(filesToMerge); return(Ok(mergedFile)); }
internal void MergePowerPoints() { OW.MoveSlides(FilesToMerge.ToList()); }