package com.oo.onlyoffice.dto.convert; import cn.hutool.json.JSONObject; import com.oo.onlyoffice.dto.convert.document.DocumentLayout; import com.oo.onlyoffice.dto.convert.document.DocumentRenderer; import com.oo.onlyoffice.dto.convert.sheet.SpreadsheetLayout; import com.oo.onlyoffice.dto.convert.thumbnail.Thumbnail; import com.oo.onlyoffice.tools.LoadConfigUtil; import lombok.Data; /** * @BelongsProject: leaf-onlyoffice * @BelongsPackage: com.ideayp.leaf.onlyoffice.dto.convert * * @CreateTime: 2022-11-23 09:41 * @Description: TODO * @Version: 1.0 */ @Data public class ConvertBody { /** * 定义转换请求类型:异步或非异步。 * 默认值为false。 */ private Boolean async; /** * 定义从csv或txt格式转换时的文件编码。 * 支持的主要值: * 932- 日语 (移位 JIS), * 950-繁体中文(大5), * 1250- 中欧 (视窗), * 1251-西里尔文(视窗), * 65001- 统一码 (UTF-8)。 */ private Integer codePage; /** * 定义从csv格式转换时用于分隔值的分隔符。 * 0- 无分隔符, * 1-标签, * 2-分号, * 3-冒号, * 4-逗号, * 5-空间。 */ private Integer delimiter; /** 必填 文件类型*/ private String filetype; /** 必填 文件key*/ private String key; /** 必填 输出类型*/ private String outputtype; /**密码*/ private String password; /**地区 默认值为en-US*/ private String region; /**定义转换后的文件名。*/ private String title; /**必填 定义要转换的文档的绝对 URL。*/ private String url; /**token*/ private String token; /**文档布局*/ private DocumentLayout documentLayout; /**文档渲染器*/ private DocumentRenderer documentRenderer; /**表格布局*/ private SpreadsheetLayout spreadsheetLayout; private Thumbnail thumbnail; public ConvertBody(String filetype,String key,String outputtype,String url,String title,String password){ this.filetype =filetype; this.key =key; this.outputtype = outputtype; this.password = password; this.url = url; this.title = title; this.region = "zh-CN"; JSONObject convert = LoadConfigUtil.getConvert(); setAsync(convert.getBool("async")); setCodePage(convert.getInt("codePage")); setDelimiter(convert.getInt("delimiter")); setRegion(convert.getStr("region")); //判断以下属性是否启用 JSONObject documentLayout = convert.getJSONObject("documentLayout"); if (documentLayout.getBool("enabled")){ setDocumentLayout(convert.get("documentLayout", DocumentLayout.class)); } JSONObject documentRenderer = convert.getJSONObject("documentRenderer"); if (documentRenderer.getBool("enabled")){ setDocumentRenderer(convert.get("documentRenderer", DocumentRenderer.class)); } JSONObject spreadsheetLayout = convert.getJSONObject("spreadsheetLayout"); if (spreadsheetLayout.getBool("enabled")){ setSpreadsheetLayout(convert.get("spreadsheetLayout", SpreadsheetLayout.class)); } JSONObject thumbnail = convert.getJSONObject("thumbnail"); if (thumbnail.getBool("enabled")){ setThumbnail(convert.get("thumbnail",Thumbnail.class)); } } public void setAsync(Boolean async) { this.async = async; } public void setCodePage(Integer codePage) { this.codePage = codePage; } public void setDelimiter(Integer delimiter) { this.delimiter = delimiter; } public void setRegion(String region) { if (null != region){ this.region = region; } } public void setDocumentLayout(DocumentLayout documentLayout) { this.documentLayout = documentLayout; } public void setDocumentRenderer(DocumentRenderer documentRenderer) { this.documentRenderer = documentRenderer; } public void setSpreadsheetLayout(SpreadsheetLayout spreadsheetLayout) { this.spreadsheetLayout = spreadsheetLayout; } public void setThumbnail(Thumbnail thumbnail) { this.thumbnail = thumbnail; } }