/// <summary> /// Проверяю наличие в документа хранилища настроек, если нет - создаю /// </summary> private void StorageCheckIn() { Entity ent = null; Schema sch = null; try { sch = Schema.Lookup(new Guid(schemaGuid)); ent = _storageElem.GetEntity(sch); if (ent.Schema != null) { return; } } catch { } SchemaBuilder sb = new SchemaBuilder(new Guid(schemaGuid)); sb.SetReadAccessLevel(AccessLevel.Public); sb.SetWriteAccessLevel(AccessLevel.Public); foreach (string fieldName in Enum.GetValues(typeof(PrintSettingFields))) { FieldBuilder fb = sb.AddSimpleField(fieldName, typeof(string)); } //FieldBuilder fb1 = sb.AddSimpleField(fieldFolder, typeof(string)); //FieldBuilder fb2 = sb.AddSimpleField(fieldConstructor, typeof(string)); sb.SetSchemaName("YayBatchPrintSettings"); sch = sb.Finish(); using (Transaction t = new Transaction(_doc)) { t.Start("Создание настроек печати"); Entity ent2 = new Entity(sch); //инициализирую стартовыми значениями для первого запуска ent2.Set <string>(sch.GetField(PrintSettingField.GetFieldName(PrintSettingFields.OutputFolder)), @"C:\PDF Print"); ent2.Set <string>(sch.GetField(PrintSettingField.GetFieldName(PrintSettingFields.NameConstructor)), "<Номер листа>_<Имя листа>.pdf"); ent2.Set <string>(sch.GetField(PrintSettingField.GetFieldName(PrintSettingFields.ColorsType)), "1"); ent2.Set <string>(sch.GetField(PrintSettingField.GetFieldName(PrintSettingFields.JoinPdf)), "false"); ent2.Set <string>(sch.GetField(PrintSettingField.GetFieldName(PrintSettingFields.PrintToPaper)), "false"); ent2.Set <string>(sch.GetField(PrintSettingField.GetFieldName(PrintSettingFields.RasterQuality)), "3"); ent2.Set <string>(sch.GetField(PrintSettingField.GetFieldName(PrintSettingFields.HiddenLineViewsType)), "0"); _storageElem.SetEntity(ent2); t.Commit(); } }
/// <summary> /// Сохраняю новые значения папки для сохранения и конструктора имени в Storage. /// Другие настройки сохраняются в стандартных параметрах печати. /// </summary> /// <param name="outputFolder"></param> /// <param name="nameConstructor"></param> public void SaveNewSettings(YayPrintSettings printSettings) //string outputFolder, string nameConstructor) { using (Transaction t = new Transaction(_doc)) { t.Start("Сохранение настроек печати"); Schema sch = Schema.Lookup(new Guid(schemaGuid)); Entity ent = _storageElem.GetEntity(sch); ent.Set <string>(sch.GetField(PrintSettingField.GetFieldName(PrintSettingFields.OutputFolder)), printSettings.outputFolder); ent.Set <string>(sch.GetField(PrintSettingField.GetFieldName(PrintSettingFields.NameConstructor)), printSettings.nameConstructor); ent.Set <string>(sch.GetField(PrintSettingField.GetFieldName(PrintSettingFields.PrinterName)), printSettings.printerName); int colorTypeInt = (int)printSettings.colorsType; ent.Set <string>(sch.GetField(PrintSettingField.GetFieldName(PrintSettingFields.ColorsType)), colorTypeInt.ToString()); string joinPdfValue = printSettings.mergePdfs.ToString(); ent.Set <string>(sch.GetField(PrintSettingField.GetFieldName(PrintSettingFields.JoinPdf)), joinPdfValue); ent.Set <string>(sch.GetField(PrintSettingField.GetFieldName(PrintSettingFields.PrintToPaper)), printSettings.printToPaper.ToString()); int rasterQualityValue = (int)printSettings.rasterQuality; ent.Set <string>(sch.GetField(PrintSettingField.GetFieldName(PrintSettingFields.RasterQuality)), rasterQualityValue.ToString()); int hiddenLinesValue = (int)printSettings.hiddenLineProcessing; ent.Set <string>(sch.GetField(PrintSettingField.GetFieldName(PrintSettingFields.HiddenLineViewsType)), hiddenLinesValue.ToString()); //foreach (string fieldName in Enum.GetValues(typeof(PrintSettingFields))) //{ // Field f = sch.GetField(fieldName); // ent.Set<string>(f, value); //} //Field f1 = sch.GetField(fieldFolder); //Field f2 = sch.GetField(fieldConstructor); //ent.Set<string>(f1, outputFolder); //ent.Set<string>(f2, nameConstructor); _storageElem.SetEntity(ent); t.Commit(); } }