...

Преобразование HTML в шаблоне в нормальную разметку

Тема в разделе "Разработчикам", создана пользователем sanches, 21 июн 2017.

  1. sanches

    sanches New Member

    Всем доброго времени суток. Возможно ли как-то при генерации файла по шаблону используя в документе поле типа html разметка преобразовать сценарием или еще как-то эту разметку в нормальный форматированный текст?

    Генерируется docx файл.

    Всем заранее спасибо.
     
  2. slavnov

    slavnov New Member

    Также интересует данный вопрос.
     
  3. akarimov

    akarimov Member

    Приведите кейс в котором это может быть полезно, непонятно какую задачу решаете: зачем делать в файле html разметку, чтобы потом по ней создавать форматирование, когда можно сразу отформатировать шаблон или отформатировать сценарием сгенерированный файл средствами библиотеки Aspose поставляемой с ELMA и умеющей делать очень многое (в гугле куча примеров)
     
  4. sanches

    sanches New Member

    Наверно я не очень понятно изъяснился.
    У меня есть маршрут создания исходящего письма. В этом маршруте выбирается контрагент и текст письма. В поле текста письма я хочу использовать wysiwyg редактор. Далее сценарием генерируется письмо из шаблона лежащего на сервере. И в шаблон вставляется поле текста вместе со всеми html атрибутами. Так вот в этом то и вопрос, как все атрибуты заменить на разметку нормальную в doc файле. Как я теперь понимаю на пользовать библиотеку Aspose

    Сейчас документ генерируется так из сценария:
    Код:
                //имя файла-версии (обязательно указывайте нужное расширение)
                file.Name = fileName;
                file.CreateDate = DateTime.Now;
                file.InitializeContentFilePath ();
                //1й параметр функции - путь до файла на физическом диске на сервере
                System.IO.File.Copy (@"D:\\ELMA3-Express\\UserConfig\\Documents\\OutgoingLetter.docx", file.ContentFilePath);
                PublicAPI.Services.DocumentGenerator.Generate (file, context);
                //сохраняем полученный файл в контекст
                PublicAPI.Services.File.SaveFile (file);
                //Добавляем версию в документ со статусом Текущая
                var DocVersion = PublicAPI.Docflow.DocumentVersion.AddDocumentVersion (context.OutgoingLetter, file, PublicAPI.Enums.Documents.DocumentVersionStatus.Current);
    
    В инете вроде и есть примеры, хотя толкового ничего не нашел. Да и все в основном на английском. Надо то всего лишь сделать простую вещь: переменную документа text в которой есть html код преобразовать и подставить в шаблоне на место {$text}
     
    Последнее редактирование: 22 июн 2017
  5. gimntut

    gimntut New Member

    Ни чего себе "простая вещь"! А если в html используются трансформации, а если используются анимации, а если таблицы, а если видео, а если флэш, а если картинка на фоне, а если ..., а если ... и ещё миллион если.
    И даже если не собираетесь всё это использовать в ворде, то в html всё это может встретиться и все эти ситуации нужно будет обрабатывать.
    Зачем конкретно нужен wisiwing в письмах?
    И ещё вопрос, что такое "нормальная разметка" про которую вы говорите?
     
    Последнее редактирование: 22 июн 2017
    1 это нравится
  6. akarimov

    akarimov Member

    Скажем так,это не простая вещь. Надо либо искать готовые примеры html 2 rtf либо писать свой парсер. Не уверен что трудозатраты окупятся т.к. соглашусь с предыдущим оратором, в письме по факту все эти навороты могут не понадобиться, там всего лишь нужны жирность и размер шрифта, и их можно заранее подставить в шаблон, и сделать несколько переменных каждую вставлять в свое место.
     
  7. pushkarev

    pushkarev Active Member

    Могу предложить идею зайти с другого бока к этой задаче. Можно попробовать использовать не обычный документ с файлом, а использовать web-документ. ELMA умеет выгружать web-документы в Word. Поэтому можно сделать генерацию нужного документа в html виде и потом выгрузить готовый документ в Word. Наверное даже сам web-документ не придется использовать, главное сгенерировать полный текст требующегося письма в html виде, и потом с помощью соответствующего метода выполнить генерацию документа word.
    Посмотреть как работает выгрузка из web-документа в word, можно зайдя в любой web-документ, выбрать расширенное представление документа и там в меню действия есть пункт "Выгрузить содержимое".
     
  8. a.zahlebin

    a.zahlebin New Member

    Добрый день, уважаемые участники! Данный вопрос еще актуален? Мы решили у себя эту проблему. Если интерес есть - могу поделиться.
     
    1 это нравится
  9. romvbem

    romvbem Member

    Интерес есть, делитесь.
     

Поделиться: