//private static bool ManageParameters_v1(string[] args) //{ // if (args.Length == 0) // { // _help = true; // return true; // } // foreach (string arg in args) // { // if (arg.StartsWith("-")) // { // if (_docxFileType != DocxFileType.Unknow) // { // //string file = GetDocxFile(_docxFileType); // //if (_extract) // // file = zPath.GetFileName(file); // _selectFiles.Add(new SelectFile { Type = _docxFileType }); // _docxFileType = DocxFileType.Unknow; // } // if (!SetOption(arg)) // return false; // } // else // { // if (_docxFileType != DocxFileType.Unknow) // { // _selectFiles.Add(new SelectFile { Type = _docxFileType, File = arg }); // _docxFileType = DocxFileType.Unknow; // } // else if (_file == null) // _file = arg; // else if (_directory == null && (_extract || (_generate && _selectFiles.Count == 0))) // _directory = arg; // else // { // Trace.WriteLine($"syntax error \"{arg}\""); // return false; // } // } // } // if (_docxFileType != DocxFileType.Unknow) // { // //string file = GetDocxFile(_docxFileType); // //if (_extract) // // file = zPath.GetFileName(file); // _selectFiles.Add(new SelectFile { Type = _docxFileType }); // _docxFileType = DocxFileType.Unknow; // } // if (!_extract && !_generate) // { // Trace.WriteLine($"error missing -x or -z option"); // return false; // } // if (_file == null) // { // Trace.WriteLine("no file specified"); // return false; // } // if (_generate) // { // if (_directory == null && _selectFiles.Count == 0) // { // Trace.WriteLine($"error missing directory or files to generate docx"); // return false; // } // if (_directory != null && _selectFiles.Count > 0) // { // Trace.WriteLine($"error choose directory or files to generate docx"); // return false; // } // } // return true; //} private static bool SetOption(string option) { option = option.ToLower(); // -x extract docx files if (option == "-x") { if (_generate) { Trace.WriteLine($"error -x and -z cannot be used at same time"); return(false); } _extract = true; } // -z generate docx else if (option == "-z") { if (_extract) { Trace.WriteLine($"error -x and -z cannot be used at same time"); return(false); } _generate = true; } // -f:name[=file] else if (option.StartsWith("-f:")) { int i = option.IndexOf('='); string fileType; if (i == -1) { fileType = option.Substring(3); } else { fileType = option.Substring(3, i - 3); } DocxFileType docxFileType = GetDocxFileType(fileType); //_docxFileType = GetDocxFileType(option.Substring(3)); if (docxFileType == DocxFileType.Unknow) { Trace.WriteLine($"unknow value for option \"{option}\""); return(false); } string file = null; if (i != -1) { file = option.Substring(i + 1); } _selectFiles.Add(new SelectFile { Type = docxFileType, File = file }); } else { Trace.WriteLine($"unknow option \"{option}\""); return(false); } return(true); }
private static string GetDocxFile(DocxFileType docxFileType) { switch (docxFileType) { case DocxFileType.Document: return("word/document.xml"); case DocxFileType.Style: return("word/styles.xml"); case DocxFileType.StyleWE: return("word/stylesWithEffects.xml"); case DocxFileType.Setting: return("word/settings.xml"); case DocxFileType.WebSetting: return("word/webSettings.xml"); case DocxFileType.Header: return("word/header1.xml"); case DocxFileType.Footer: return("word/footer1.xml"); case DocxFileType.FooterNote: return("word/footnotes.xml"); case DocxFileType.EndNote: return("word/endnotes.xml"); case DocxFileType.FontTable: return("word/fontTable.xml"); case DocxFileType.Theme: return("word/theme/theme1.xml"); case DocxFileType.DocumentRels: return("word/document.xml.rels"); case DocxFileType.ContentType: return("[Content_Types].xml"); case DocxFileType.Rels: return(".rels"); case DocxFileType.AppDocProps: return("docProps/app.xml"); case DocxFileType.CoreDocProps: return("docProps/core.xml"); default: throw new PBException($"unknow DocxFileType {docxFileType}"); } }
private static string GetDocxFile(DocxFileType docxFileType) { switch (docxFileType) { case DocxFileType.Document: return "word/document.xml"; case DocxFileType.Style: return "word/styles.xml"; case DocxFileType.StyleWE: return "word/stylesWithEffects.xml"; case DocxFileType.Setting: return "word/settings.xml"; case DocxFileType.WebSetting: return "word/webSettings.xml"; case DocxFileType.Header: return "word/header1.xml"; case DocxFileType.Footer: return "word/footer1.xml"; case DocxFileType.FooterNote: return "word/footnotes.xml"; case DocxFileType.EndNote: return "word/endnotes.xml"; case DocxFileType.FontTable: return "word/fontTable.xml"; case DocxFileType.Theme: return "word/theme/theme1.xml"; case DocxFileType.DocumentRels: return "word/document.xml.rels"; case DocxFileType.ContentType: return "[Content_Types].xml"; case DocxFileType.Rels: return ".rels"; case DocxFileType.AppDocProps: return "docProps/app.xml"; case DocxFileType.CoreDocProps: return "docProps/core.xml"; default: throw new PBException($"unknow DocxFileType {docxFileType}"); } }
// add docx file name to docx file private static string GetSpecificDocxFile(DocxFileType docxFileType) { return zPath.GetFileNameWithoutExtension(_file) + "." + zPath.GetFileName(GetDocxFile(docxFileType)); }
private static bool SetOption(string option) { option = option.ToLower(); // -x extract docx files if (option == "-x") { if (_generate) { Trace.WriteLine($"error -x and -z cannot be used at same time"); return false; } _extract = true; } // -z generate docx else if (option == "-z") { if (_extract) { Trace.WriteLine($"error -x and -z cannot be used at same time"); return false; } _generate = true; } // -f:name else if (option.StartsWith("-f:")) { //_renameFiles = true; _docxFileType = GetDocxFileType(option.Substring(3)); if (_docxFileType == DocxFileType.Unknow) { Trace.WriteLine($"unknow value for option \"{option}\""); return false; } //if (_extract) //{ // if (_filesToExtract == null) // _filesToExtract = new List<DocxFile>(); // _filesToExtract.Add(_docxFile); //} } else { Trace.WriteLine($"unknow option \"{option}\""); return false; } return true; }
private static bool ManageParameters(string[] args) { if (args.Length == 0) { _help = true; return true; } foreach (string arg in args) { if (arg.StartsWith("-")) { if (_docxFileType != DocxFileType.Unknow) { //string file = GetDocxFile(_docxFileType); //if (_extract) // file = zPath.GetFileName(file); _selectFiles.Add(new SelectFile { Type = _docxFileType }); _docxFileType = DocxFileType.Unknow; } if (!SetOption(arg)) return false; } else { if (_docxFileType != DocxFileType.Unknow) { _selectFiles.Add(new SelectFile { Type = _docxFileType, File = arg }); _docxFileType = DocxFileType.Unknow; } else if (_file == null) _file = arg; else if (_directory == null && (_extract || (_generate && _selectFiles.Count == 0))) _directory = arg; else { Trace.WriteLine($"syntax error \"{arg}\""); return false; } } } if (_docxFileType != DocxFileType.Unknow) { //string file = GetDocxFile(_docxFileType); //if (_extract) // file = zPath.GetFileName(file); _selectFiles.Add(new SelectFile { Type = _docxFileType }); _docxFileType = DocxFileType.Unknow; } if (!_extract && !_generate) { Trace.WriteLine($"error missing -x or -z option"); return false; } if (_file == null) { Trace.WriteLine("no file specified"); return false; } if (_generate) { if (_directory == null && _selectFiles.Count == 0) { Trace.WriteLine($"error missing directory or files to generate docx"); return false; } if (_directory != null && _selectFiles.Count > 0) { Trace.WriteLine($"error choose directory or files to generate docx"); return false; } } return true; }
// add docx file name to docx file private static string GetSpecificDocxFile(DocxFileType docxFileType) { return(zPath.GetFileNameWithoutExtension(_file) + "." + zPath.GetFileName(GetDocxFile(docxFileType))); }