diff --git a/ConsoleApp1/Program.cs b/ConsoleApp1/Program.cs index 69e9ae49..0336fb7e 100644 --- a/ConsoleApp1/Program.cs +++ b/ConsoleApp1/Program.cs @@ -13,49 +13,62 @@ namespace ConsoleApp1 { static void Main(/*string[] args*/) { - string[] fileExtension = { ".xlsx", ".xls", ".ods", ".odt", ".doc", ".docx", ".pdf" }; - Console.WriteLine($"start convert"); - var inputFiles = new List(); - var resultFile = "C:\\Test\\result.pdf"; - inputFiles.Add("11112222.docx"); - inputFiles.Add("11117777.pdf"); - inputFiles.Add("22223333.xls"); - inputFiles.Add("33334444.xlsx"); - //inputFiles.Add("33334444.tts"); + // string[] fileExtension = { ".xlsx", ".xls", ".ods", ".odt", ".doc", ".docx", ".pdf" }; + // Console.WriteLine($"start convert"); + // var inputFiles = new List(); + // var resultFile = "C:\\Test\\result.pdf"; + // inputFiles.Add("11112222.docx"); + // inputFiles.Add("11117777.pdf"); + // inputFiles.Add("22223333.xls"); + // inputFiles.Add("33334444.xlsx"); + // //inputFiles.Add("33334444.tts"); - var listOutNames = new List(); - var filteredFilesNames = inputFiles - .Distinct() - .Where(f => fileExtension.Any(fe => f.ToLower().EndsWith(fe))) - .ToList(); - FileInfo fileInfo = new FileInfo(resultFile); + // var listOutNames = new List(); + // var filteredFilesNames = inputFiles + // .Distinct() + // .Where(f => fileExtension.Any(fe => f.ToLower().EndsWith(fe))) + // .ToList(); + // FileInfo fileInfo = new FileInfo(resultFile); - //matchesExtensions(inputFiles); - foreach (var FileName in inputFiles) + // //matchesExtensions(inputFiles); + // foreach (var FileName in inputFiles) + // { + // var outputFile = Path.ChangeExtension(FileName, ".pdf"); + // var outFile = StartConvertProcessAsync(FileName, outputFile); + // Console.WriteLine($"convert file - {FileName}"); + // Console.ReadLine(); + // listOutNames.Add(outFile.Result.ToString()); + // } + // Console.WriteLine("merged files"); + // Console.ReadLine(); + // DoMerged(listOutNames, resultFile); + + + + //static void matchesExtensions(List inputFiles) + // { + // string[] fileExtension = { ".xlsx", ".xls", ".ods", ".odt", ".doc", ".docx", ".pdf" }; + // foreach (var file in inputFiles) + // { + // var fileExt = Path.GetExtension(file); + // if (fileExtension.All(fe => fileExt != fe)) + // { + // throw new FileFormatException($"Файл с именем: {file} не может быть добавлен в список файлов для конвертации и слияния в общий файл программы бурения. Не поддерживаемый формат файла"); + // } + + // } + // } + if (OperatingSystem.IsWindows()) { - var outputFile = Path.ChangeExtension(FileName, ".pdf"); - var outFile = StartConvertProcessAsync(FileName, outputFile); - Console.WriteLine($"convert file - {FileName}"); + Console.WriteLine("win"); Console.ReadLine(); - listOutNames.Add(outFile.Result.ToString()); } - Console.WriteLine("merged files"); - Console.ReadLine(); - DoMerged(listOutNames, resultFile); - - static void matchesExtensions(List inputFiles) + if (OperatingSystem.IsLinux()) { - string[] fileExtension = { ".xlsx", ".xls", ".ods", ".odt", ".doc", ".docx", ".pdf" }; - foreach (var file in inputFiles) - { - var fileExt = Path.GetExtension(file); - if (fileExtension.All(fe => fileExt != fe)) - { - throw new FileFormatException($"Файл с именем: {file} не может быть добавлен в список файлов для конвертации и слияния в общий файл программы бурения. Не поддерживаемый формат файла"); - } - - } + Console.WriteLine("linux"); + Console.ReadLine(); } + } public static void DoMerged(IEnumerable inputFiles, string outFile) @@ -78,6 +91,25 @@ namespace ConsoleApp1 }; } + private static (string programFile, string programArg) getOptionsStartupProcess(string inputFileName, string resultFileDir) + { + (string programFile, string programArg) startupOptions; + if (OperatingSystem.IsWindows()) + { + startupOptions.programFile = "C:\\Program Files\\LibreOffice\\program\\soffice.exe"; + startupOptions.programArg = $"-headless -convert-to pdf {inputFileName} --outdir {resultFileDir}"; + return startupOptions; + } + if (OperatingSystem.IsLinux()) + { + startupOptions.programFile = "/usr/bin/soffice"; + startupOptions.programArg = $"--headless --convert-to pdf {inputFileName} --outdir {resultFileDir}"; + return (startupOptions); + } + + throw new NotSupportedException("Вызов процесса в текущей операционной системе не возможен"); + } + //public static void StartConvertProcess(string inputFileName, string outFileName) //{ // using (Process pdfprocess = new Process()) @@ -98,6 +130,9 @@ namespace ConsoleApp1 //} private static async Task StartConvertProcessAsync(string inputFileName, string outFileName) { + + var progrAndArg = getOptionsStartupProcess(inputFileName, outFileName); + //string outPath = "/home/eddie/Test/OutFiles"; string outPath = "C:\\Test\\OutFiles"; var result = Cli.Wrap("C:\\Program Files\\LibreOffice\\program\\soffice.exe") diff --git a/ConsoleApp1/Properties/PublishProfiles/FolderProfile.pubxml b/ConsoleApp1/Properties/PublishProfiles/FolderProfile.pubxml new file mode 100644 index 00000000..1002f833 --- /dev/null +++ b/ConsoleApp1/Properties/PublishProfiles/FolderProfile.pubxml @@ -0,0 +1,17 @@ + + + + + Release + Any CPU + C:\home\linux_test_test + FileSystem + net6.0 + linux-x64 + true + false + false + + \ No newline at end of file