Преобразование документов в реальном времени - вопросы реализации - PullRequest
1 голос
/ 02 марта 2011

Нам необходимо преобразовать документы MS Office в PDF в режиме реального времени, когда кто-то предоставляет ссылку на документ после проверки, авторизован ли пользователь для просмотра документа или нет для портала интрасети.Нам также необходимо кэшировать документы на основе даты последнего изменения документа, нам не следует снова преобразовывать документ, если другой пользователь запрашивает тот же документ, а содержимое документа не изменилось с момента его последнего преобразования.

У меня есть несколько основных вопросов о том, как мы можем реализовать это - и я хотел бы проверить, есть ли у кого-то предыдущий опыт или мысли, как они это реализовали?

Например, если мы выберем J2EE в качестве технологии и выберем одинбиблиотек Java с открытым исходным кодом для преобразования PDF;У меня есть следующие вопросы.

  1. Если есть документ объемом 100 МБ - нам нужно будет загрузить весь документ из системы, в которой он находится, прежде чем мы начнем конвертировать документ.Этот подход может иметь серьезные проблемы с временем отклика, учитывая, что это должно быть просмотр в реальном времени.Можно ли прочитать первую страницу документа, не загружая весь документ, чтобы мы могли конвертировать страницу документа за страницей?
  2. Как мы можем кэшировать документ?Я не думаю, что мы можем хранить документ на сервере или в базе данных.Причина в том, что это может привести к тому, что любой, кто имеет доступ к базе данных или серверу, может получить доступ к содержимому документа.Есть мысли?
  3. Или вы предлагаете какой-нибудь готовый продукт, чтобы сделать это вместо пользовательской разработки?

Спасибо

1 Ответ

1 голос
/ 18 мая 2011

Я работаю в компании, которая создает продукт, который делает именно то, что вы пытаетесь сделать , используя Java / .NET вызовы веб-службы, поэтому давайте я смогу ответить на ваши вопросы без предвзятости.

  1. Весь документ необходимо загрузить, так как он должен быть интерпретирован перед преобразованием PDF (например, в целях нумерации страниц). Я уверен, что вы просто приводите пример, но 100 МБ очень много для документа MS-Office, хотя мы время от времени видим его.

  2. Вы можете реализовать кэширование на основе ваших точных требований безопасности. Если вы не хотите хранить преобразованные файлы в (защищенной) БД или файловой системе, возможно, вы хотите сохранить их на другом сервере за брандмауэром. В зависимости от количества документов и ожидаемого размера, вы можете кэшировать их в памяти. Я уверен, что есть много библиотек кэширования J2EE, я знаю, что их много в .NET. Просто храните наиболее часто запрашиваемые документы в своем кэше.

  3. В зависимости от вашего бюджета вы можете купить готовый продукт (подсказка :-). Я знаю, что для Java доступны бесплатные библиотеки, использующие Open Office, но вы получаете те же ограничения на форматирование при открытии файлов MS-Office в OO. Будьте осторожны, пытаясь сделать собственную интеграцию / автоматизацию MS-Office. Можно сделать его надежным и масштабируемым (мы это сделали), но это занимает много времени и много работы.

Надеюсь, это поможет.

...