Введение
предыдущий пост«Кроссплатформенное (универсальное) решение для онлайн-просмотра файлов», статья посвящена использованию 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
Шаги для использования
-
- Зарегистрируйтесь и войдите в центр управления пользователями
-
- Добавьте доменное имя или IP-адрес на странице управления доменным именем (доменное имя или IP-адрес, соответствующий адресу загрузки файла в общедоступной сети).
-
- адрес предварительного просмотра 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预览地址
, нажмите, чтобы просмотреть файл
Предварительный просмотр слова
Предварительный просмотр Excel
Предварительный просмотр 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)