public override void GenerateConversionMetadataFile( ExportBase export, IExportNastaveni settings, string documentType, string finalOutputFileFullPath, string finalOutputFileName, string finalOutputMetadataFileName) { var fiFinalOutputFilename = new FileInfo(finalOutputFileFullPath); var step = 0; var outputFileWithoutExtension = fiFinalOutputFilename.Name.Substring(0, fiFinalOutputFilename.Name.LastIndexOf(".", StringComparison.Ordinal)); var fileTransformationSource = finalOutputFileFullPath; var parameters = new NameValueCollection { { "accessories", finalOutputFileName } }; foreach (var transformationFile in XsltTransformerFactory.GetTransformationFromTransformationsFile(settings.SouborTransformaci, "jgslov-xmd-step")) { var fileTransformationTarget = GetTempFile(settings.DocasnaSlozka, outputFileWithoutExtension, step++); export.ApplyTransformations(fileTransformationSource, fileTransformationTarget, XsltTransformerFactory.GetXsltTransformers( settings.SouborTransformaci, transformationFile, settings.SlozkaXslt, true), settings.DocasnaSlozka, parameters); fileTransformationSource = fileTransformationTarget; } File.Copy(fileTransformationSource, finalOutputMetadataFileName); }
protected Queue <IList <IXsltTransformer> > GetTransformationList(string transformationPrefix) { var xsltSteps = new Queue <IList <IXsltTransformer> >(); foreach (var transformationFile in XsltTransformerFactory.GetTransformationFromTransformationsFile(Nastaveni.SouborTransformaci, transformationPrefix)) { xsltSteps.Enqueue( XsltTransformerFactory.GetXsltTransformers( Nastaveni.SouborTransformaci, transformationFile, Nastaveni.SlozkaXslt, true)); } return(xsltSteps); }
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(); } } } }