Создание Microsoft Word (.docx) документы в Ruby

Вместо встроенного JavaScript переместите свой код в режим работы и установите видимость согласно условию

<button ng-click="VisibilityChange('1')" value="myValue" 
        id="mybtn">
  See users
</button>
<button ng-click="VisibilityChange('2')" id="editbtn">Edit</button>
<button ng-click="VisibilityChange('3')" id="addbtn">Add</button>`

Ваш контроллер

  var app = angular.module('myApp', []);
    app.controller('myCtrl', function($scope) {
        $scope.hideShow2 = true;
        $scope.hideShow = false;
        $scope.hideShow1 = false;


    $scope.VisibilityChange= function(type){

      switch(type)
      {
      case"1":
        $scope.hideShow2 = true;
        $scope.hideShow = false;
        $scope.hideShow1 = false;
        change();
      break;
      case"2":
        $scope.hideShow2 = false;
        $scope.hideShow = true;
        $scope.hideShow1 = false;
      break;

      case"3":
        $scope.hideShow2 = false;
        $scope.hideShow = false;
        $scope.hideShow1 = true;
      break;

      }

    }

    });
47
задан Srathi00 25 July 2012 в 23:27
поделиться

5 ответов

Как был отмечен, кажется, нет никаких библиотек для управления Открытыми XML-документами в Ruby, но у Разработчика OpenXML есть подробная документация на формате Открытых XML-документов.

Если то, что Вы хотите, должно отправить копию стандартного документа (как образец письма) настроенный для каждого пользователя, это должно быть довольно просто, учитывая, что DOCX является zip-файлом, который содержит различные части в иерархии каталогов. Имейте DOCX "шаблон", который содержит все части и древовидную структуру, к которой Вы хотите отправить all пользователи (без реального содержания), затем просто создайте новый (или измените существующий), части, которые содержат определенное для пользователя содержание, Вы хотите и вводите его в ZIP (файл DOCX) прежде, чем отправить его пользователю.

Например: Вы могли иметь document-template.xml это содержит Дорогой [ПОЛЬЗОВАТЕЛЬСКИЙ ЗАПОЛНИТЕЛЬ]:. когда пользователь запрашивает документ, Вы заменяете [USER-PLACEHOLDER] с именем пользователя затем добавьте получающееся document.xml к your-template.docx Zip-файл (который содержал бы все изображения и другие части, которые Вы хотите в документе Word) и отправляет тот получающийся документ пользователю.

Обратите внимание на это при переименовании a .docx файл к .zip это тривиально для исследования структуры и формата частей внутри. Можно удалить или заменить изображения или другие части очень легко с любыми инструментами управления ZIP или программно с кодом.

Генерация совершенно нового документа Word с абсолютно пользовательским содержанием от необработанного XML была бы очень трудной без доступа к API сделать задание легче. Если действительно необходимо сделать это, Вы могли бы считать установку Моно, затем использовать VB.NET, C# или IronRuby для создания Открытых XML-документов с помощью Открыть XML Format SDK 1.0. Так как Вы просто использовали бы Microsoft. Office. DocumentFormat. OpenXml. Упаковывая Пространство имен для управления Открытыми XML-документами это должно работать хорошо в Моно, который, кажется, поддерживает все, чего SDK требует.

42
ответ дан Grant Wagner 26 November 2019 в 19:40
поделиться

В дополнение к ответу Предоставления можно также отправить Word "Плоский OPC" файл, который является по существу docx, разархивированным и связанным для создания единственного XML-файла. Таким образом, можно заменить [ПОЛЬЗОВАТЕЛЬСКИЙ ЗАПОЛНИТЕЛЬ] в одном файле и быть сделаны с ним (т.е. никакое архивирование или разархивация).

2
ответ дан JasonPlutext 26 November 2019 в 19:40
поделиться

При работе Windows, конечно, это - вопрос WIN32OLE и некоторой боли с Word COM objects.

Возможности состоят в том, что Ваше обслуживание от *отклоняет среду, все же. Использование Word 2007 "Microsoft Office Открывает XML" формат (*.docx), который может быть открыт с помощью соответствующего пакета совместимости от Microsoft.

Некоторые более свежие приложения Office (2002/XP и 2003, по крайней мере) имели их собственные форматы XML, которые могут также быть применимыми.

Я не знаю ни о каких инструментах Ruby для создания процесса легче, печально.

Если бы это может быть сделано приемлемым, я думаю, что был бы склонен спуститься по маршруту файла переименованного HTML. Я просто сохранил документ как HTML от WordXP, переименовал его к .doc и открыл его без проблемы.

1
ответ дан Mike Woodhouse 26 November 2019 в 19:40
поделиться

Можно использовать ПОИ Apache. Это записано в Java, но интегрируется с Ruby как расширение

8
ответ дан ykaganovich 26 November 2019 в 19:40
поделиться

Я знаю, служите ли Вы документу HTML в качестве документа слова с .doc расширением, это откроется в Word очень хорошо. Просто не делайте ничего необычного.

Править: Вот пример с помощью классического ASP. http://www.aspdev.org/asp/asp-export-word/

7
ответ дан Daniel A. White 26 November 2019 в 19:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: