private static MemoryStream PorovnatPrepisy2HTML(IPrepis prpLevy, IPrepis prpPravy) { XmlDocument xdPrepisy = new XmlDocument(); XmlDocument xdp = Prepis2Xml(prpPravy); XmlNode xnd = xdPrepisy.CreateElement("Prepisy"); xnd.AppendChild(xdPrepisy.ImportNode(xdp.DocumentElement, true)); xdp = Prepis2Xml(prpLevy); xnd.AppendChild(xdPrepisy.ImportNode(xdp.DocumentElement, true)); xdPrepisy.AppendChild(xnd); XslCompiledTransform xctXslt = new XslCompiledTransform(); Assembly assembly = Assembly.GetExecutingAssembly(); FileInfo fi = new FileInfo(assembly.Location); xctXslt.Load(fi.DirectoryName + "\\Xslt\\PrepisySrovnani.xsl"); MemoryStream msmXmlWriter = new MemoryStream(); XmlWriter xmwWriter = XmlWriter.Create(msmXmlWriter); xctXslt.Transform(xdPrepisy.CreateNavigator(), xmwWriter); return(msmXmlWriter); /* * byte[] byteArray = new byte[msmXmlWriter.Length]; * byteArray = msmXmlWriter.ToArray(); * String s = System.Text.Encoding.UTF8.GetString(byteArray); * msmXmlWriter.Close(); * return s; */ }
public override string UpravPoSpojeni(IPrepis prepis, IEnumerable <ITransformacniKrok> kroky) { string sVstup = DejNazevPredchozihoVystupu(prepis); string sVystup = UpravVstupniSoubor(prepis, kroky, sVstup); return(sVystup); }
/// <summary> /// Upraví tělo dokumentu (>body<), které obsahuje hlavní text. /// </summary> /// <param name="prepis">Objekt s přepisem, jehož tělo se má upravovat.</param> /// <param name="kroky">Trnasformační kroky, které se mají na tělo aplikovat.</param> /// <returns>Vrací celou cestu k souboru s tělem.</returns> /// <remarks>Pokud vrátí null, znamená to, že úvod nic neobsahuje.</remarks> public override string UpravTelo(IPrepis prepis, IEnumerable <ITransformacniKrok> kroky) { string sVstup = Path.Combine(Nastaveni.VstupniSlozka, prepis.Soubor.NazevBezPripony + ".xml"); string sVystup = UpravVstupniSoubor(prepis, kroky, sVstup); return(UpravBiblickaMista(prepis, sVystup)); }
private void ExportujImpl(IPrepis prepis, IList <string> xmlOutputFiles, IReadOnlyDictionary <ResourceType, string[]> uploadedFiles) { var xsltSteps = GetTransformationList("grammar-step"); var fileNameFithoutExtension = prepis.Soubor.NazevBezPripony; var fullFileName = fileNameFithoutExtension + ".xml"; var inputFilePath = Path.Combine(Nastaveni.VstupniSlozka, fullFileName); var faksimile = uploadedFiles[ResourceType.UnknownXmlFile].First(xmlFile => { var xmlFileInfo = new FileInfo(xmlFile); return(xmlFileInfo.Name.Substring(0, xmlFileInfo.Name.Length - xmlFileInfo.Extension.Length) == fileNameFithoutExtension); }); var stepFiles = new string[xsltSteps.Count + 4]; //UpravPerexSouboru, ZkontrolujCislaPagin, OdlisitStejnePojmenovanaPaginy, UpravOdkazyNaPaginy for (var i = 0; i < stepFiles.Length; i++) { stepFiles[i] = GetTempFile(Nastaveni.DocasnaSlozka, fileNameFithoutExtension, i); } var parameters = new NameValueCollection { { "guid", prepis.GUID }, { "faksimile", faksimile } }; ApplyTransformations(inputFilePath, stepFiles[0], xsltSteps.Dequeue(), Nastaveni.DocasnaSlozka, parameters); ApplyTransformations(stepFiles[0], stepFiles[1], xsltSteps.Dequeue(), Nastaveni.DocasnaSlozka, parameters); ApplyTransformations(stepFiles[1], stepFiles[2], xsltSteps.Dequeue(), Nastaveni.DocasnaSlozka); UpravPerexSouboru(new FileInfo(stepFiles[2]), stepFiles[3]); ZkontrolujCislaPagin(new FileInfo(stepFiles[3]), stepFiles[4]); OdlisitStejnePojmenovanaPaginy(new FileInfo(stepFiles[4]), stepFiles[5]); UpravOdkazyNaPaginy(new FileInfo(stepFiles[5]), stepFiles[6]); AppendWatermarks(new FileInfo(stepFiles[6]), uploadedFiles[ResourceType.Image]); var outputXml = Path.Combine(Nastaveni.VystupniSlozka, fullFileName); File.Copy(stepFiles[6], outputXml); /* * IList<IXsltTransformer> body = XsltTransformerFactory.GetXsltTransformers(Nastaveni.SouborTransformaci, "body", Nastaveni.SlozkaXslt); * string konecnyVystup = null; * * const string csPriponaXml = ".xml"; * * DateTime casExportu = Nastaveni.CasExportu == DateTime.MinValue ? DateTime.Now : Nastaveni.CasExportu; * string souborBezPripony = prepis.Soubor.NazevBezPripony; * * konecnyVystup = Path.Combine(Nastaveni.VystupniSlozka, prepis.Soubor.NazevBezPripony + csPriponaXml); * * string headerFile = Path.Combine(Nastaveni.DocasnaSlozka, String.Format("{0}_{1}.xml", souborBezPripony, "header")); * NameValueCollection parameters = new NameValueCollection(); * ApplyTransformations(Nastaveni.SouborMetadat, headerFile, body, Nastaveni.DocasnaSlozka, parameters);*/ }
private static IExportNastaveni GetExportSettings(string documentType, DocxToTeiConverterSettings settings, string xsltTransformationsDirectoryPath, string xsltTemplatesDirectoryPath, AdresarovaStruktura ads, IPrepis prepis) { string xsltTransformationFilePath = Path.Combine(xsltTransformationsDirectoryPath, documentType + XmlExtension); IExportNastaveni exportSettings = null; switch (documentType) { case "Edition": case "ProfessionalLiterature": exportSettings = GetEdicniModulNastaveni(settings, xsltTransformationFilePath, xsltTemplatesDirectoryPath, ads, prepis); break; case "Dictionary": exportSettings = GetDictionarySettings(settings, xsltTransformationFilePath, xsltTemplatesDirectoryPath, ads, prepis); break; case "Grammar": exportSettings = GetGrammarSettings(settings, xsltTransformationFilePath, xsltTemplatesDirectoryPath, ads, prepis); break; } return(exportSettings); }
/// <summary> /// Zkombinuje jednotlivé části textu. /// </summary> /// <param name="prepis">Objekt s přepisem, pro nějž se budou kombinovat jednotlivé části.</param> /// <param name="strHlavicka">Soubor s textem hlavičky (<teiHeader>)</param><param name="strUvod">Soubor s textem úvodu (<front>)</param><param name="strTelo">Soubor s hlavním textem (<body>)</param><param name="strZaver">Soubor s textem na závěr (<back>)</param><param name="kroky">Trnasformační kroky, které se mají na slučované části aplikovat.</param> /// <returns> /// >Pokud vrátí null, znamená to, že zkombinovaný soubor nebyl vytvořen. /// </returns> public override string ZkombinujCastiTextu(IPrepis prepis, string strHlavicka, string strUvod, string strTelo, string strZaver, IEnumerable <ITransformacniKrok> kroky) { string sVstup = DejNazevPredchozihoVystupu(prepis); string sVystup = UpravVstupniSoubor(prepis, kroky, sVstup); return(sVystup); }
public override void Uprav(IPrepis prepis) { /* * string strHlavicka = UpravHlavicku(prepis, null); * string strUvod = UpravUvod(prepis, null); * string strTelo = UpravTelo(prepis, null); * string strZaver = UpravZaver(prepis, null); */ }
private string UpravVstupniSoubor(IPrepis prepis, IEnumerable <ITransformacniKrok> kroky, string sVstup) { string sVystup = DejNazevVystupu(prepis); foreach (ITransformacniKrok krok in kroky) { Dictionary <string, string> gdcParametry = VyplnitParametry(krok.Parametry, prepis); //Console.WriteLine("{0} => {1}, {2}", sVstup, sVystup, krok.Sablona); krok.Transformuj(sVstup, sVystup, gdcParametry); mglsVystupy.Add(sVystup); sVstup = sVystup; sVystup = Path.Combine(mstrDocasnaSlozka, String.Format(cstrNazevVystupuFormat, prepis.Soubor.NazevBezPripony, PocetKroku)); } return(mglsVystupy[PocetKroku - 1]); }
public override string ProvedUpravy(IPrepis prepis, string strVstup, IEnumerable <UpravaSouboruXml> upravy) { string strVystup = null; string sVstup = strVstup; foreach (UpravaSouboruXml upravaSouboruXml in upravy) { strVystup = DejNazevVystupu(prepis); _logger.Debug("Metoda={0};Vstup={1};Vystup={2}", upravaSouboruXml.Method.Name, sVstup, strVystup); //Console.WriteLine("{0} => {1}, {2}", sVstup, strVystup, upravaSouboruXml.Method.Name); upravaSouboruXml(sVstup, strVystup); mglsVystupy.Add(strVystup); sVstup = strVystup; } return(strVystup); }
/// <summary> /// Upraví zpracování biblických míst: u biblických textů vytvoří oddíly pro knihy, kapitoly a verše, /// u nebiblických textů vytvoří odkazy na biblický text /// </summary> /// <param name="prepis">Informace o přepisu, kterého se úprava týká</param> /// <param name="strVstup">Celá cesta vstupního souboru</param> /// <returns>Vrací celou cestu k výstupnímu souboru</returns> public string UpravBiblickaMista(IPrepis prepis, string strVstup) { string strVystup = DejNazevVystupu(prepis); if (prepis.LiterarniZanr == "biblický text") { RozdelitBibliNaKnihyAKapitoly(strVstup, strVystup); mglsVystupy.Add(strVystup); string sVstup = strVystup; strVystup = DejNazevVystupu(prepis); RozdelitBibliNaVerse(sVstup, strVystup); } else { OdkazyNaBiblickyText(strVstup, strVystup); } return(strVystup); }
private static IExportNastaveni GetGrammarSettings(DocxToTeiConverterSettings settings, string xsltTransformationFilePath, string xsltTemplatesPath, AdresarovaStruktura ads, IPrepis prepis) { IExportNastaveni nastaveni = new MluvniceModulNastaveni(); nastaveni.SouborTransformaci = xsltTransformationFilePath; nastaveni.SlozkaXslt = xsltTemplatesPath; nastaveni.VstupniSlozka = ads.DejSpolecneDocXml; nastaveni.VystupniSlozka = ads.DejVystup; nastaveni.DocasnaSlozka = ads.DejTemp; nastaveni.Prepis = prepis; nastaveni.SmazatDocasneSoubory = !settings.Debug; nastaveni.SouborMetadat = settings.MetadataFilePath; return(nastaveni); }
public override void Uprav(IPrepis prepis) { string strDocasnaSlozka = Nastaveni.DocasnaSlozka ?? Path.GetTempPath(); Dictionary <string, XslCompiledTransform> gdxc = NactiTransformacniKroky(); string sCesta = Path.Combine(Nastaveni.VstupniSlozka, Nastaveni.Prepis.Soubor.Nazev); sCesta = sCesta.Replace(".docx", ".xml"); FileInfo fi = new FileInfo(sCesta); if (!fi.Exists) { throw new FileNotFoundException("Zadaný soubor '" + sCesta + "' neexistuje."); } List <string> glsVystupy = new List <string>(Nastaveni.TransformacniKroky.Count); string strNazev = fi.Name.Substring(0, fi.Name.Length - fi.Extension.Length); int iKrok = 0; string strVstup = sCesta; foreach (TransformacniKrok krok in Nastaveni.TransformacniKroky) { iKrok++; string strVystup = Path.Combine(strDocasnaSlozka, String.Format("{0}_{1:00}.xml", strNazev, iKrok)); glsVystupy.Add(strVystup); if (krok.Parametry != null) { //foreach (KeyValuePair<string, string> kvp in krok.Parametry) //{ // switch (kvp.Key) // { // case "soubor": // } //} } gdxc[krok.Sablona].Transform(strVstup, strVystup); strVstup = strVystup; } }
public static string Prepis2HTML(IPrepis prpPrepis) { //Prepis2Xml(prpPrepis); MemoryStream msmXml = null; XslCompiledTransform xctXslt = new XslCompiledTransform(); Assembly assembly = Assembly.GetExecutingAssembly(); //xctXslt.Load(@"V:\Projekty\Daliboris\Texty\Evidence\Xslt\Prepisy2HTML.xsl"); FileInfo fi = new FileInfo(assembly.Location); xctXslt.Load(fi.DirectoryName + "\\Xslt\\Prepisy2HTML.xsl"); if (prpPrepis.PuvodniPodoba != null) { msmXml = PorovnatPrepisy2HTML(prpPrepis, prpPrepis.PuvodniPodoba); } else { msmXml = new MemoryStream(); Perzistence.UlozitDoStreamu(msmXml, prpPrepis as Prepis); //Prepis.Serialize(msmXml, prpPrepis); } msmXml.Seek(0, SeekOrigin.Begin); XmlReader xmrReader = XmlReader.Create(msmXml); MemoryStream msmXmlWriter = new MemoryStream(); XmlWriter xmwWriter = XmlWriter.Create(msmXmlWriter); xctXslt.Transform(xmrReader, xmwWriter); byte[] byteArray = new byte[msmXmlWriter.Length]; byteArray = msmXmlWriter.ToArray(); //msmXmlWriter.Seek(0, SeekOrigin.Begin); //msmXmlWriter.Read(byteArray, 0, byteArray.Length); //System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding(); String s = System.Text.Encoding.UTF8.GetString(byteArray); msmXml.Close(); msmXmlWriter.Close(); return(s); }
public static XmlDocument Prepis2Xml(IPrepis prp) { XmlDocument xd = new XmlDocument(); //Stream msm = new MemoryStream(); MemoryStream msm = new MemoryStream(); //Prepis.Serialize(msm, prp, Prepisy.csDefaultNamespace); Perzistence.UlozitDoStreamu(msm, prp as Prepis); //Prepis.Serialize(msm, prp); byte[] byteArr = new byte[msm.Length]; System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding(); msm.Seek(0, SeekOrigin.Begin); byteArr = msm.ToArray(); //msm.Write(byteArr, 0, byteArr.Length); String s2 = enc.GetString(byteArr); //FileStream fl = File.Create(@"V:\Temp\Text_01.xml"); //fl.Write(byteArr, 0, byteArr.Length); //fl.Close(); xd.LoadXml(s2); msm.Close(); return(xd); }
private void ConvertDocxToXml(IPrepis prepis, string outputDirectory, string docxToXmlFilePath) { //FileInfo fi = new FileInfo(Path.Combine(outputDirectory, prepis.Soubor.NazevBezPripony + ".xml")); ConvertDocxToXml(prepis.Soubor.CelaCesta, docxToXmlFilePath, outputDirectory, prepis.Soubor.NazevBezPripony, DateTime.UtcNow); }
private string GetSimplifiedFilename(IPrepis prepis) { return(GetSimplifiedFilename(prepis.Soubor.NazevBezPripony, false)); }
private void ExportujImpl(IPrepis prepis, IList <string> xmlOutputFiles) { var fileName = GetSimplifiedFilename(prepis); var xsltSteps = GetTransformationList(String.Format("{0}-step", fileName)); Zaloguj("Převádím soubor {0}", prepis.Soubor.Nazev, false); string vystupniSoubor = null; var casExportu = Nastaveni.CasExportu == DateTime.MinValue ? DateTime.Now : Nastaveni.CasExportu; var souborBezPripony = prepis.Soubor.NazevBezPripony; var fullFileName = souborBezPripony + ".xml"; var inputFilePath = Path.Combine(Nastaveni.VstupniSlozka, fullFileName); var konecnyVystup = Path.Combine(Nastaveni.VystupniSlozka, fullFileName); if (xmlOutputFiles.Count > 1) { CombineInputXml(xmlOutputFiles, inputFilePath); } try { var step = 0; vystupniSoubor = inputFilePath; var transformationParameter = new NameValueCollection { { "guid", prepis.GUID } }; if (xsltSteps.Count > 0) { var step00File = GetTempFile(Nastaveni.DocasnaSlozka, souborBezPripony, step++); ApplyTransformations(inputFilePath, step00File, xsltSteps.Dequeue(), Nastaveni.DocasnaSlozka, transformationParameter); vystupniSoubor = step00File; } var slovnik = GetDictionaryObject(fileName); var fileTransformationSource = vystupniSoubor; if (slovnik != null) { UsePersonalizedXmdGenerator = slovnik.UsePersonalizedXmdGenerator; var step01File = GetTempFile(Nastaveni.DocasnaSlozka, souborBezPripony, step++); var step02File = GetTempFile(Nastaveni.DocasnaSlozka, souborBezPripony, step++); var step03File = GetTempFile(Nastaveni.DocasnaSlozka, souborBezPripony, step++); var step04File = GetTempFile(Nastaveni.DocasnaSlozka, souborBezPripony, step++); slovnik.SeskupitHeslaPismene(vystupniSoubor, step01File, souborBezPripony); slovnik.UpravitHraniceHesloveStati(step01File, step02File, souborBezPripony); slovnik.KonsolidovatHeslovouStat(step02File, step03File, souborBezPripony); slovnik.UpravitOdkazy(step03File, step04File, souborBezPripony); fileTransformationSource = step04File; } while (xsltSteps.Count > 0) { var fileTransformationTarget = GetTempFile(Nastaveni.DocasnaSlozka, souborBezPripony, step++); ApplyTransformations(fileTransformationSource, fileTransformationTarget, xsltSteps.Dequeue(), Nastaveni.DocasnaSlozka, transformationParameter); fileTransformationSource = fileTransformationTarget; } vystupniSoubor = fileTransformationSource; } catch (Exception e) { Zaloguj("Při konverzi souboru {0} nastala chyba: {1}", prepis.Soubor.NazevBezPripony, e.Message, true); } finally { if (vystupniSoubor != null) { if (File.Exists(konecnyVystup)) { File.Delete(konecnyVystup); } File.Copy(vystupniSoubor, konecnyVystup); File.SetCreationTime(konecnyVystup, casExportu); //if (Nastaveni.SmazatDocasneSoubory) // ekup.SmazDocasneSoubory(); } } }
protected override void Exportuj(IPrepis prpPrepis, IList <string> xmlOutputFiles) { throw new NotImplementedException(); }
private static Dictionary <string, string> VyplnitParametry(Dictionary <string, string> gdcParametry, IPrepis prepis) { if (gdcParametry == null) { return(null); } Dictionary <string, string> gdc = new Dictionary <string, string>(gdcParametry); foreach (KeyValuePair <string, string> kvp in gdcParametry) { if (kvp.Value != null) { continue; } switch (kvp.Key) { case "soubor": gdc[kvp.Key] = prepis.Soubor.Nazev; break; } } return(gdc); }
private void ExportujImpl(IPrepis prepis) { IList <IXsltTransformer> header = XsltTransformerFactory.GetXsltTransformers(Nastaveni.SouborTransformaci, "header", Nastaveni.SlozkaXslt); IList <IXsltTransformer> front = XsltTransformerFactory.GetXsltTransformers(Nastaveni.SouborTransformaci, "front", Nastaveni.SlozkaXslt); IList <IXsltTransformer> body = XsltTransformerFactory.GetXsltTransformers(Nastaveni.SouborTransformaci, "body", Nastaveni.SlozkaXslt); IList <IXsltTransformer> back = XsltTransformerFactory.GetXsltTransformers(Nastaveni.SouborTransformaci, "back", Nastaveni.SlozkaXslt); IList <IXsltTransformer> joining = XsltTransformerFactory.GetXsltTransformers(Nastaveni.SouborTransformaci, "joining", Nastaveni.SlozkaXslt); IList <IXsltTransformer> afterJoining = XsltTransformerFactory.GetXsltTransformers(Nastaveni.SouborTransformaci, "afterJoining", Nastaveni.SlozkaXslt); IUpravy ekup = new EdicniModulUpravy(Nastaveni); ekup.NastavVychoziHodnoty(); Zaloguj("Převádím soubor {0}", prepis.Soubor.Nazev, false); string strVystup = null; string sKonecnyVystup = null; DateTime casExportu = Nastaveni.CasExportu == DateTime.MinValue ? DateTime.Now : Nastaveni.CasExportu; string souborBezPripony = prepis.Soubor.NazevBezPripony; try { const string csPriponaXml = ".xml"; sKonecnyVystup = Path.Combine(Nastaveni.VystupniSlozka, prepis.Soubor.NazevBezPripony + csPriponaXml); FileInfo fi = new FileInfo(sKonecnyVystup); if (fi.Exists && fi.CreationTime == casExportu) { return; } string headerFile = Path.Combine(Nastaveni.DocasnaSlozka, String.Format("{0}_{1}.xml", souborBezPripony, "header")); var parameters = new NameValueCollection { { "soubor", prepis.Soubor.Nazev } }; ApplyTransformations(Nastaveni.SouborMetadat, headerFile, header, Nastaveni.DocasnaSlozka, parameters); string frontFile = Path.Combine(Nastaveni.DocasnaSlozka, String.Format("{0}_{1}.xml", souborBezPripony, "front")); ApplyTransformations(Nastaveni.SouborMetadat, frontFile, front, Nastaveni.DocasnaSlozka, parameters); parameters = new NameValueCollection { { "exportovatTransliteraci", prepis.Zpracovani.Transliterovane ? "true()" : "false()" } }; string bodyFile = Path.Combine(Nastaveni.DocasnaSlozka, String.Format("{0}_{1}.xml", souborBezPripony, "body")); ApplyTransformations(Path.Combine(Nastaveni.VstupniSlozka, souborBezPripony + csPriponaXml), bodyFile, body, Nastaveni.DocasnaSlozka, parameters); parameters.Add("hlavicka", headerFile); parameters.Add("zacatek", frontFile); string combineFile = Path.Combine(Nastaveni.DocasnaSlozka, String.Format("{0}_{1}.xml", souborBezPripony, "joining")); ApplyTransformations(bodyFile, combineFile, joining, Nastaveni.DocasnaSlozka, parameters); parameters = new NameValueCollection(); string afterCombineFile = Path.Combine(Nastaveni.DocasnaSlozka, String.Format("{0}_{1}.xml", souborBezPripony, "afterJoining")); ApplyTransformations(combineFile, afterCombineFile, afterJoining, Nastaveni.DocasnaSlozka, parameters); List <UpravaSouboruXml> lsup = new List <UpravaSouboruXml>(); lsup.Add(EdicniModulUpravy.PresunoutMezeryVneTagu); lsup.Add(EdicniModulUpravy.PridatMezeryZaTagyPoInterpunkci); lsup.Add(EdicniModulUpravy.RozdelitNaSlova); //lsup.Add(Upravy.UpravitTextTypograficky); EdicniModulUpravy eu = ekup as EdicniModulUpravy; strVystup = ekup.ProvedUpravy(prepis, afterCombineFile, lsup); } catch (Exception e) { Zaloguj("Při konverzi souboru {0} nastala chyba: {1}", prepis.Soubor.NazevBezPripony, e.Message, true); } finally { if (strVystup != null) { if (File.Exists(sKonecnyVystup)) { File.Delete(sKonecnyVystup); } File.Copy(strVystup, sKonecnyVystup); File.SetCreationTime(sKonecnyVystup, casExportu); if (Nastaveni.SmazatDocasneSoubory) { ekup.SmazDocasneSoubory(); } } } }
/// <summary> /// Upraví jeden přepis, transformuje ho do podoby pro ediční modul /// </summary> /// <param name="prp">Přepis (informace o něm)</param> /// <param name="emnNastaveni">Nastavení exportu pro ediční modul</param> /// <param name="glsTransformacniSablony">Seznam transformačních šablon XSLT, které se při úpravách použijí</param> public static void Uprav(IPrepis prp, IExportNastaveni emnNastaveni, List <string> glsTransformacniSablony) { // string sCesta = Path.Combine(emnNastaveni.VstupniSlozka, prp.Soubor.Nazev); sCesta = sCesta.Replace(".docx", ".xml").Replace(".doc", ".xml"); FileInfo fi = new FileInfo(sCesta); if (!fi.Exists) { throw new FileNotFoundException("Zadaný soubor '" + sCesta + "' neexistuje."); } if (emnNastaveni.DocasnaSlozka == null) { emnNastaveni.DocasnaSlozka = Path.GetTempPath(); } //Zpracovat hlavičku a front string strNazev = fi.Name.Substring(0, fi.Name.Length - fi.Extension.Length); Console.WriteLine("Zpracovávám soubor '{0}'", strNazev); XmlWriter xw; string sFront = Path.Combine(emnNastaveni.SlozkaXslt, "Vytvorit_front_TEI.xsl"); string sFrontVystup = Path.Combine(emnNastaveni.DocasnaSlozka, strNazev + "_front.xml"); List <string> glsVystupy = new List <string>(glsTransformacniSablony.Count + 2); /* * UpravaSouboruXml uprava = new UpravaSouboruXml(UpravHlavicku); * * * Dictionary<string, string> gdcParam = new Dictionary<string, string>(); * gdcParam.Add("soubor", prp.NazevSouboru); * TransformacniKrok tkh = new TransformacniKrok(Path.Combine(emnNastaveni.SlozkaXslt, "EM_Vytvorit_hlavicku_TEI.xsl"), emnNastaveni.SouborMetadat, gdcParam); */ string sHlavicka = Path.Combine(emnNastaveni.SlozkaXslt, "EM_Vytvorit_hlavicku_TEI.xsl"); string sHlavickaVystup = Path.Combine(emnNastaveni.DocasnaSlozka, strNazev + "_hlavicka.xml"); XslCompiledTransform xctHlavick = new XslCompiledTransform(); xctHlavick.Load(sHlavicka); XsltArgumentList xal = new XsltArgumentList(); xal.AddParam("soubor", "", prp.NazevSouboru); xw = XmlWriter.Create(sHlavickaVystup); xctHlavick.Transform(emnNastaveni.SouborMetadat, xal, xw); xw.Close(); glsVystupy.Add(sHlavickaVystup); XslCompiledTransform xctFront = new XslCompiledTransform(); xctFront.Load(sFront); xw = XmlWriter.Create(sFrontVystup); xctFront.Transform(emnNastaveni.SouborMetadat, xal, xw); xw.Close(); glsVystupy.Add(sFrontVystup); string strVstup = sCesta; string strVystup = null; for (int i = 0; i < glsTransformacniSablony.Count; i++) { strVystup = Path.Combine(emnNastaveni.DocasnaSlozka, String.Format(cstrNazevVystupuFormat, strNazev, i)); glsVystupy.Add(strVystup); XslCompiledTransform xslt = new XslCompiledTransform(); Console.WriteLine("{0} = {1}", String.Format(cstrNazevVystupuFormat, strNazev, i), glsTransformacniSablony[i]); xslt.Load(glsTransformacniSablony[i]); xslt.Transform(strVstup, strVystup); strVstup = strVystup; } if (prp.LiterarniZanr == "biblický text") { strVstup = ZpracovatBiblickyText(emnNastaveni, strNazev, glsTransformacniSablony, glsVystupy, strVystup); } else { strVstup = ZpracovatOdkazyNaBiblickaMista(emnNastaveni, strNazev, glsTransformacniSablony, glsVystupy, strVystup); } string sSlouceni = Path.Combine(emnNastaveni.SlozkaXslt, "EM_Spojit_s_hlavickou_a_front.xsl"); //EBV strVystup = Path.Combine(emnNastaveni.DocasnaSlozka, String.Format(cstrNazevVystupuFormat, strNazev, glsVystupy.Count)); XsltSettings xsltSettings = new XsltSettings(true, false); XslCompiledTransform xctSlouceni = new XslCompiledTransform(); xctSlouceni.Load(sSlouceni, xsltSettings, null); xal = new XsltArgumentList(); xal.AddParam("hlavicka", "", sHlavickaVystup); xal.AddParam("zacatek", "", sFrontVystup); xw = XmlWriter.Create(strVystup); xctSlouceni.Transform(strVstup, xal, xw); xw.Close(); strVstup = strVystup; glsVystupy.Add(strVystup); /* * strVystup = Path.Combine(emnNastaveni.DocasnaSlozka, String.Format("{0}_{1:00}.xml", strNazev, glsVystupy.Count)); * PresunoutMezeryVneTagu(strVstup, strVystup); * glsVystupy.Add(strVystup); * strVstup = strVystup; */ string sEdicniKomentar = Path.Combine(emnNastaveni.SlozkaXslt, "EM_Presunout_edicni_komentar.xsl"); strVystup = Path.Combine(emnNastaveni.DocasnaSlozka, String.Format(cstrNazevVystupuFormat, strNazev, glsVystupy.Count)); XmlUrlResolver xrl = new XmlUrlResolver(); XslCompiledTransform xctEdicniKomentare = new XslCompiledTransform(); xctEdicniKomentare.Load(sEdicniKomentar, xsltSettings, xrl); xw = XmlWriter.Create(strVystup); xctEdicniKomentare.Transform(strVstup, xal, xw); xw.Close(); glsVystupy.Add(strVystup); strVstup = strVystup; strVystup = Path.Combine(emnNastaveni.VystupniSlozka, strNazev + ".xml"); PresunoutMezeryVneTagu(strVstup, strVystup); //File.Copy(strVystup, Path.Combine(emnNastaveni.VystupniSlozka, strNazev + ".xml"),true); }
/// <summary> /// Upraví úvod dokumentu (>front<), který obsahuje nadpis a autora. /// </summary> /// <param name="prepis">Objekt s přepisem, jehož úvod se má upravovat.</param> /// <param name="kroky">Trnasformační kroky, které se mají na úvod aplikovat.</param> /// <returns>Vrací celou cestu k souboru s úvodem.</returns> /// <remarks>Pokud vrátí null, znamená to, že úvod nic neobsahuje.</remarks> public override string UpravUvod(IPrepis prepis, IEnumerable <ITransformacniKrok> kroky) { string sVstup = Nastaveni.SouborMetadat; return(UpravVstupniSoubor(prepis, kroky, sVstup)); }
/* * public void UpravBiblickyText(string strNazev, string strVstup) * { * List<string> glsVystupy = new List<string>(); * List<string> glsTransformacniSablony = new List<string>(); * glsVystupy.Add(strVstup); * glsTransformacniSablony.Add(strVstup); * EdicniModulUpravy.ZpracovatBiblickyText(Nastaveni, strNazev, glsTransformacniSablony, glsVystupy, strVstup); * * } * * public override void Exportuj() * { * IPrepis prepis = Nastaveni.Prepis; * * const string sSlozkaXslt = @"D:\!UJC\OVJ\Texty\Konverze\Xslt\"; * List<string> glsXslt = new List<string>(); * * glsXslt.Add(sSlozkaXslt + "Prevod_starych_wordovskych_stylu_na_nove" + ".xsl"); * glsXslt.Add(sSlozkaXslt + "Odstranit_tabulku_metadat" + ".xsl"); * glsXslt.Add(sSlozkaXslt + "Odstranit_interni_poznamky" + ".xsl"); * glsXslt.Add(sSlozkaXslt + "Prevest_sloucene_styly_na_elementy" + ".xsl"); * glsXslt.Add(sSlozkaXslt + "Sloucit_obsah_nasledujicich_shodnych_elementu" + ".xsl"); * glsXslt.Add(sSlozkaXslt + "Odstranit_mezery_mezi_elementy" + ".xsl"); * glsXslt.Add(sSlozkaXslt + "Odstranit_prazdne_elementy" + ".xsl"); * * glsXslt.Add(sSlozkaXslt + "EM_Prevod_stylu_na_TEI" + ".xsl"); * glsXslt.Add(sSlozkaXslt + "Upravit_obsah_prvku_cell" + ".xsl"); * * glsXslt.Add(sSlozkaXslt + "Seskupit_prvky_thead_do_div" + ".xsl");//EB-výbor * //glsXslt.Add(sSlozkaXslt + "EB_Odstranit_edicni_komentar" + ".xsl");//EB-výbor * * //glsXslt.Add(sSlozkaXslt + "EB_Vybor_Seskupit_prvky_do_div" + ".xsl"); * glsXslt.Add(sSlozkaXslt + "Seskupit_prvky_do_div" + ".xsl"); //EB * glsXslt.Add(sSlozkaXslt + "Seskupit_prvky_k_titulu" + ".xsl");//EB * glsXslt.Add(sSlozkaXslt + "Presunout_foliaci_pred_odstavec" + ".xsl");//EB * glsXslt.Add(sSlozkaXslt + "Presunout_foliaci_pred_odstavec" + ".xsl");//EB * glsXslt.Add(sSlozkaXslt + "TEI_Upravit_Foliaci" + ".xsl"); * glsXslt.Add(sSlozkaXslt + "TEI_Seskupit_odstavce_bez_div" + ".xsl");//EB * //glsXslt.Add(sSlozkaXslt + "EB_Vybor_Seskupit_odstavce_bez_div" + ".xsl");//EB-výbor * //glsXslt.Add(sSlozkaXslt + "EB_Vybor_Seskupit_verse_bez_div" + ".xsl");//EB-výbor * glsXslt.Add(sSlozkaXslt + "TEI_Slouceni_l_a_lb" + ".xsl"); * * glsXslt.Add(sSlozkaXslt + "Sloucit_corr_a_sic" + ".xsl"); * glsXslt.Add(sSlozkaXslt + "Prevest_prvek_text_na_text" + ".xsl"); * * glsXslt.Add(sSlozkaXslt + "Odstranit_mezery_mezi_elementy" + ".xsl"); * glsXslt.Add(sSlozkaXslt + "Prejmenovat_head1" + ".xsl"); * glsXslt.Add(sSlozkaXslt + "EM_Seskupit_polozky_rejstriku" + ".xsl"); * glsXslt.Add(sSlozkaXslt + "EM_Prevod_relatoru" + ".xsl"); * * //glsXslt.Add(sSlozkaXslt + "Presunout_foliaci_pred_odstavec" + ".xsl"); * //glsXslt.Add(sSlozkaXslt + "Presunout_foliaci_pred_odstavec" + ".xsl"); * * //glsXslt.Add(sSlozkaXslt + "EM_Ukazka_s_hlavickou" + ".xsl"); * * * //EdicniModulUpravy ups = new EdicniModulUpravy(); * //if (prp.LiterarniZanr != "biblický text") continue; * //if (prp.NazevSouboru != "BiblKladrGn.docx") continue; * //if (prp.NazevSouboru != "PN_ZrcSpasK_1-22.docx") continue; * //if (prp.NazevSouboru != "HKMP_BiblKlemNZ_Mt.docx") continue; * //if (prp.NazevSouboru != "CestKabK.docx") continue; * try * { * EdicniModulUpravy.Uprav(prepis, Nastaveni, glsXslt); * } * catch (Exception e) * { * Zaloguj(String.Format("Chyba: {0} [{1}]", prepis.Soubor.Nazev, e.Message), true); * //Console.WriteLine(); * } * * //prp.Zpracovani.ZaevidujExport(ZpusobVyuziti.EdicniModul, DateTime.Now); * } */ protected override void Exportuj(IPrepis prpPrepis, IList <string> xmlOutputFiles) { ExportujImpl(prpPrepis); }
/// <summary> /// Přiřadí identifikátory důležitým prvkům /// </summary> /// <param name="prepis">Objekt s přepisem, jehož závěr se má upravovat.</param> /// <param name="kroky">Trnasformační kroky, které se mají na závěr aplikovat.</param> /// <returns>Vrací celou cestu k přetransformovanému souboru.</returns> public override string PriradId(IPrepis prepis, IEnumerable <ITransformacniKrok> kroky) { throw new NotImplementedException(); }
public override string UpravHlavicku(IPrepis prepis, List <ITransformacniKrok> kroky) { throw new NotImplementedException(); }
/// <summary> /// Upraví závěr dokumentu (>back<), které obsahuje závěrečné pasáže, např. informaci a autorských právech. /// </summary> /// <param name="prepis">Objekt s přepisem, jehož závěr se má upravovat.</param> /// <param name="kroky">Trnasformační kroky, které se mají na závěr aplikovat.</param> /// <returns>Vrací celou cestu k souboru se závěrem.</returns> /// <remarks>Pokud vrátí null, znamená to, že závěr nic neobsahuje.</remarks> public override string UpravZaver(IPrepis prepis, List <ITransformacniKrok> kroky) { return(null); }
public virtual void Exportuj(IPrepis prpPrepis, IList <string> xmlOutputFiles, IReadOnlyDictionary <ResourceType, string[]> uploadedFiles) { Exportuj(prpPrepis, xmlOutputFiles); }
/// <summary> /// Upraví hlavičku dokumentu (>teiHeader<). /// </summary> /// <param name="prepis">Objekt s přepisem, jehož hlavička se má upravovat.</param> /// <param name="kroky">Trnasformační kroky, které se mají na hlavičku aplikovat.</param> /// <returns>Vrací celou cestu k vytvořenému souboru.</returns> /// <remarks>Pokud vrátí null, znamená to, že hlavička nic neobsahuje.</remarks> public override string UpravHlavicku(IPrepis prepis, List <ITransformacniKrok> kroky) { string sVstup = Nastaveni.SouborMetadat; return(UpravVstupniSoubor(prepis, kroky, sVstup)); }
protected abstract void Exportuj(IPrepis prpPrepisy, IList <string> xmlOutputFiles);
/// <summary> /// Vrací název předchozího výstupu pro zadaný přepis. /// </summary> /// <param name="prepis">Objekt, pro nějž se vrací název výstupu</param> /// <returns>Název předchozího výstupu pro zadaný přepis</returns> /// <remarks>Název se určuje podle aktuálního počtu zpracovaných souborů.</remarks> public override string DejNazevPredchozihoVystupu(IPrepis prepis) { return(Path.Combine(mstrDocasnaSlozka, String.Format(cstrNazevVystupuFormat, prepis.Soubor.NazevBezPripony, PocetKroku - 1))); }