Кроссплатформенное решение для онлайн-просмотра файлов (2)

Java внешний интерфейс
Кроссплатформенное решение для онлайн-просмотра файлов (2)

Введение

предыдущий пост«Кроссплатформенное (универсальное) решение для онлайн-просмотра файлов», статья посвящена использованию pdf.js для предварительного просмотра файлов PDF на различных платформах (H5 и APP), а также про файлы Office (Word, PPT, Excel) предварительный просмотр файлов заключается в сборке сервиса OpenOffice, используйте сервис для конвертации PDF файлы, а затем просмотреть их.

Во-вторых, спрос продолжает расти.

С развитием бизнеса компании требования продукта к обработке файлов Office продолжают расширяться, включая преобразование документов, предварительный просмотр, редактирование и обработку.

  • Файлы Office нельзя редактировать или обрабатывать★
  • Документ не может быть отображен как есть
  • Преобразование PDF, для больших файлов, низкая производительность
  • Содержание документа может быть скопировано по желанию, и безопасность не может быть гарантирована.
  • Не могу добавить водяной знак
  • Не могу распечатать онлайн

3. Оценка программы

В ответ на вышеуказанные требования первым решением стал Microsoft Office Online, который очень сложен для создания служб Office Online и поддерживает только Windows, особенно проекты, которые поддерживают только интрасеть. Есть два способа построить«Разверните Office Online 2017 на сервере Windows 2016, чтобы реализовать онлайн-просмотр Office»,Deploy Office Online Server, Заинтересованные студенты могут добавить меня для общения друг с другом.

Эффект Office Online

Минусы Office Online

  • Office Online выполнит проверку доменного имени и не поддерживает прямой доступ по IP.Решением является настройка хостов серверов.
  • Редактирование и преобразование документов слабы и сложны в настройке
  • Автономная установка и развертывание сложны и поддерживаются только Windows

Ввиду вышеперечисленных недостатков решил отказаться от Office Online и выбрать **Программное обеспечение для онлайн-просмотра документов Yongzhong DCS**

Четыре,Программное обеспечение для онлайн-просмотра документов Yongzhong DCS

Возможно, вы не слышали о Yongzhong DCS, но наверняка слышали об офисе Yongzhong. Когда я учился в колледже, когда был популярен Linux, я всегда пользовался Yongzhong Office. Я помню, что в то время он был разработан на Java. Он очень хорошо поддерживает платформу Linux и имеет очень высокую степень интеграции с документами Microsoft Office. Документы Word не имеют беспорядка макета и так далее.

Сегодня эра облаков, и облачные сервисы и облачные вычисления постепенно взрослеют. Программное обеспечение покинуло автономную, автономную эру и превратилось в услугу (т.е. SAAS, программное обеспечение как услуга). Популярны соответствующие облачные офисы и облачные документы, такие как облачные документы Tencent, облачные документы WPS, облачное преобразование Yongzhong и т. д. Документы больше не редактируются одним человеком и не копируются повсюду, а осуществляется совместная работа над документами в Интернете и предварительный просмотр редактирования документов в Интернете.

Yongzhong DCS предоставляет хорошие облачные сервисы, включая преобразование, предварительный просмотр, редактирование, обработку и т. д. документов в распространенных форматах.Он может не только предварительно просматривать документы Office, но также просматривать изображения, программные коды, текстовые файлы и т. д. кофициальная документация, вот код напрямую.

Публичное облако — преобразование облака Yongzhong

Шаги для использования

    1. Зарегистрируйтесь и войдите в центр управления пользователями
    1. Добавьте доменное имя или IP-адрес на странице управления доменным именем (доменное имя или IP-адрес, соответствующий адресу загрузки файла в общедоступной сети).
    1. адрес предварительного просмотра API

dcsapi.com/?k=ключ домена&ur…Например:DCS API.com/?can=1744232&…

Второй шаг — использовать адрес загрузки файла из общедоступной сети, например:http://113.62.127.199:8090/fileUpload/1.docx

Как создать сервис загрузки файлов

1. Сборка Томката

настроить котаconfigв каталогеserver.xml, напоследок<server></server>добавить следующееService:

port=8090 Порт службы доступа к файлам
docBase="/root/" каталог хранения файлов, файлы на сервере будут храниться в каталоге /root/fileUpload/
Адрес загрузки файла:http://IP-адрес: 8090/fileUpload/имя файла.docx
Запустите службу TomcatTomcatXXX/bin/catalina.sh start

<Service name="fileUpload">
  <!--分配8089端口 -->
  <!-- <Connector port="8090" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="GBK" redirectPort="8443" /> -->
  <Connector port="8090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
    <Engine name="fileUpload" defaultHost="localhost">
    <!--name为项目访问地址 此配置的访问为http://localhost:8080 appBase配置tomcat下wabapps下的路径-->
    <Host name="localhost" appBase="webapps"  
      unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
      <!--资源地址-->
      <Context path="" docBase="/root/" debug="0" reloadable="false"/>
    </Host>
  </Engine>
 </Service>
2. Java читает файл сервера и возвращает файловый поток

код напрямую

Чтение файла каталога, преобразование в двоичный поток

основной код

ios = new FileInputStream(sourceFile);
os = response.getOutputStream();
int read = 0;
byte[] buffer = new byte[1024 * 1024];
while ((read = ios.read(buffer)) != -1) {
    os.write(buffer, 0, read);
}
os.flush();

полный код

Примечание. Рекомендуется использовать Java-код, с помощью которого можно управлять правами доступа, защищать безопасность и конфиденциальность документов и т. д.

@RequestMapping(value = "/api/attachment", method = RequestMethod.GET)
    public void getFileBytes(@RequestParam("name") String name, @RequestParam("url") String url, HttpServletRequest request, HttpServletResponse response) {
        response.reset();
        response.setContentType("application/octet-stream");
        response.setCharacterEncoding("utf-8");
        response.setHeader("Content-Disposition", "attachment;filename=" + name);

        AttachmentVO attachmentVO = new AttachmentVO();
        FileInputStream ios = null;
        OutputStream os = null;
        try {
            name = CharsetUtils.toUTF_8(name);
            url = CharsetUtils.toUTF_8(url);

            attachmentVO.setUrl(url);
            attachmentVO.setName(name);
            File sourceFile = getDictionaryFile(attachmentVO, request);
            if (null == sourceFile) {
//                throw new HttpResponseException(300, "附件不存在!");
                return;
            }

            /**
             * 判断文件类型
             */
            /* 获得文件名后缀 */
            String ext = "";
            if (!"".equals(url) && url.contains(".")) {
                ext = url.substring(url.lastIndexOf(".") + 1, url.length()).toUpperCase();
            }
            /* 根据文件类型不同进行预览 */
            /* 预览pdf */
            if ("PDF".equals(ext)) {
                response.setContentType("application/pdf");
            }

            /**
             * 将文件写入输出流,显示在界面上,实现预览效果
             */
            ios = new FileInputStream(sourceFile);
            os = response.getOutputStream();
            int read = 0;
            byte[] buffer = new byte[1024 * 1024];
            while ((read = ios.read(buffer)) != -1) {
                os.write(buffer, 0, read);
            }
            os.flush();
        } catch (Exception e) {
            e.printStackTrace();
            try {
                if (null != ios) {
                    ios.close();
                }
                if (null != os) {
                    os.close();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }

Буду文件下载地址(Такие как:http://113.62.127.199:8090/fileUpload/1.docx) заполнен永中云转换管理后台->文档预览меню, создаст полныйapi预览地址, нажмите, чтобы просмотреть файл

填写文档下载地址生成API地址

Предварительный просмотр слова

word预览效果

Предварительный просмотр Excel

excel预览效果

Предварительный просмотр PPT

ppt预览效果

поддержка мобильного терминала

Откройте адрес предварительного просмотра API на мобильном терминале, эффект будет следующим:

Предварительный просмотр слова

Предварительный просмотр Excel

Предварительный просмотр PPT

описание параметра адреса предварительного просмотра API

Описание параметра: 1. Параметр k: система автоматически сгенерирует ключ при добавлении доменного имени, чтобы проверить, является ли доменное имя законным. 2. URL-адрес параметра: адрес загрузки файла, например:большой город.yoko soft.com/yoko doc.doc…

Четыре необязательных параметра: 1. noCache: логический формат. Следует ли принудительно выполнять повторное преобразование (игнорировать кеш), значение true означает принудительное повторное преобразование, а значение false — не принудительное повторное преобразование. 2. водяной знак: формат строки. Установите содержимое водяного знака для одного документа. 3. isCopy: целочисленный формат (0 нет 1 да, по умолчанию 0. Укажите, следует ли запретить копирование для одного документа). 4. pageStart: целочисленный формат pageEnd: целочисленный формат. Функция пробного чтения (начальная страница номера страницы конверсии и конечная страница номера страницы конверсии могут быть вызваны только по доменному имени с соответствующими полномочиями).

Совет: параметр isCopy управляет защитой от копирования, параметр водяного знака может добавлять водяной знак

Доступ к серверной части Java

Метод доступа:

  • Серверная часть Java черезHTTP-инструментыGetВызовите собранный адрес предварительного просмотра API и верните реальный адрес предварительного просмотра клиенту.Возвращенный результат выглядит следующим образом (данные->данные — это реальный адрес возврата):
{
        "data":{
            "data":"https://p.dcsapi.com/view/preview/xxxxxxxx/"
        },
        "message":"操作成功",
        "errorcode":0
}
  • Собранный адрес предварительного просмотра API (например:api.yozocloud.cn/ getPreview?k=123456&url=ABC.com/123.doc&is C…), все параметры (k, url и т. д.) записываются во внутреннем коде и не раскрываются клиенту, что повышает безопасность документа и защищает конфиденциальность.

Расширенные функции, такие как доступ к другим языкам программирования, преобразование документов и т. д.

Другие языки программирования (PHP, C++, C# и т. д.), методы доступа, преобразование документов, подписи и другие дополнительные функции, см.Документация по продукту Yongzhong DCS

Можно использовать расширенные функции, такие как большие файлы, защита от копирования документов и добавление водяных знаков.Про или Премиум Про

Частное облако

Что касается спроса на собственное частное облако и автономные продукты, я буду следить за тем, как использовать его и получать к нему доступ, так что следите за обновлениями.

Суммировать

pdf.js может выполнять только онлайн-предварительный просмотр pdf, но не может быть отредактирован и обработан; Office Online может предварительно просматривать документы Office, но производительность обработки и преобразования низкая, а развертывание сложно; для особых потребностей, таких как водяные знаки, производительность обработки больших файлов, Yongzhong DCS - очень хороший выбор!

Для перепечатки указать:мой обмен технологиями » Кроссплатформенное решение для онлайн-просмотра файлов (2)