Convert PDF to MS Office with C#

This code uses the OpenService and CloseService methods from PDF Converter API - Document Converter Service Client sample code:

/// <summary>
        /// Perform PDF to DOCX on the supplied file, writing the result into the target folder
        /// </summary>
        /// <param name="ServiceURL">URL endpoint for the PDF Converter service</param>
        /// <param name="sourceFileName">Source filename</param>
        /// <param name="targetFolder">Target folder to receive the output file</param>
        /// <param name="officeType">Office type for output</param>
        static void PDFToOffice(string ServiceURL, string sourceFileName, string targetFolder, OfficeTypes officeType)
        {
            DocumentConverterServiceClient client = null;
            try
            {
                // Create minimum OpenOptions object
                OpenOptions openOptions = new OpenOptions();
                openOptions.OriginalFileName = Path.GetFileName(sourceFileName);

                // Create minimum PatternHighlightSettings
                PDFToOfficeSettings pDFToOfficeSettings = new PDFToOfficeSettings();
                pDFToOfficeSettings.OfficeType = officeType;
                pDFToOfficeSettings.PageRange = "*";
                // Create target folder if required
                if (!Directory.Exists(targetFolder))
                {
                    Directory.CreateDirectory(targetFolder);
                }
                // ** Read the source file into a byte array.
                byte[] sourceFile = File.ReadAllBytes(sourceFileName);

                // ** Open the service and configure the bindings
                client = OpenService(ServiceURL);


                // ** Carry out the conversion.
                byte[] result = client.PDFToOffice(sourceFile, openOptions, pDFToOfficeSettings);

                // ** Save the results
                if (result != null)
                {
                    if (!Directory.Exists(targetFolder))
                    {
                        Directory.CreateDirectory(targetFolder);
                    }
                    string filename = Path.GetFileNameWithoutExtension(sourceFileName);
                    string destinationFileName = Path.GetFullPath(Path.Combine(targetFolder, filename + $".{pDFToOfficeSettings.OfficeType}"));
                    using (FileStream fs = File.Create(destinationFileName))
                    {
                        fs.Write(result, 0, result.Length);
                        fs.Close();
                    }
                    Console.WriteLine("File converted to " + destinationFileName);
                    // Open the destination file
                    ProcessStartInfo psi = new ProcessStartInfo();
                    psi.FileName = destinationFileName;
                    psi.UseShellExecute = true;
                    Process.Start(psi);
                }
                else
                {
                    Console.WriteLine("Nothing returned");
                }
            }
            catch (FaultException<WebServiceFaultException> ex)
            {
                Console.WriteLine($"FaultException occurred: ExceptionType: {ex.Detail.ExceptionType.ToString()}");
                Console.WriteLine();
                Console.WriteLine($"Error Detail: {string.Join(Environment.NewLine, ex.Detail.ExceptionDetails)}");
                Console.WriteLine($"Error message: {ex.Message}");
                Console.WriteLine();
                Console.WriteLine($"Error reason: {ex.Reason}");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);
                Console.WriteLine(ex.Data.ToString());
            }
            finally
            {
                if (client != null)
                {
                    CloseService(client);

                }
            }

        }