使用Java对接永中格式转换
永中 格式转换 服务基于 永中 DCS 的文档转换能力,支持不同格式文件之间的高质量互转, 可实现 PDF文档与Word、Excel、PPT、图片的高质量互转,PDF文档转换完美保留原文档的版式,格式等,转换效果出色 ,转换速度快 ,提供高效的文件格式转换能力。
首先要先成为开发者并且申请应用。在永中云服务平台首页( http s ://open.yozocloud.cn )点击” 申请加入 “填写信息,然后提交就好了。之后点击页面右上角的”管理中心“,点击”申请添加新应用“按钮申请应用,然后就获得了下图的appId和appKey。
然后阅读 格式转换开发文档 。官网的开发文档里有对接服务时要用到的所有接口,也给出了返回示例供参考,还有在使用过程中的遇到的常见问题也是做了总结。
下面就是具体的接入步骤:
第一步:导入 jar包生成签名。官网专门提供了几种流行编程语言的SDK,根据自己的开发语言下载对应的SDK及demo生成签名。这里使用的是JAVA SDK。
SDK下载地址: https://cms.yozocloud.cn/info/file/getResource/81
DEMO下载地址: https://cms.yozocloud.cn/info/file/getResource/82
public static String APPID = "XXXX"; public static String APPKEY = "XXXXXX"; public static String CONVERTTYPE = "7"; //excel转pdf/*** 获取签名信息** @param map 参数k-v* @return 签名* @throws Exception 异常*/ String getSign(Map<String,String[]> map) throws Exception {map.put("appId",new String[]{APPID});AppAuthenticator authenticator=new UaaAppAuthenticator(UaaConstant.SIGN,null,UaaConstant.APPID);String sign = authenticator.generateSign(APPKEY, map);System.out.println("sign = " + sign);return sign; }
第二步:上传文件。这里我使用 RestTemplate发送Post请求,要注意的是上传文件时文件类型一定要是multipartFile类型,否则会报错:message:服务器未知错误^_^。
/*** 上传文件*/ Map<String, String[]> params = new HashMap<>(); String sign = getSign(params); String url = "http://dmc.yozocloud.cn/api/file/upload?appId={0}&sign={1}"; url = url.replace("{0}", APPID).replace("{1}", sign); System.out.println("url:" + url); //上传文件 String filePath = "C:"; String fileName = "11111.xlsx";//设置请求头 HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.parseMediaType("multipart/form-data"));//文件类型是multipartFile类型//设置请求体,注意是LinkedMultiValueMap FileSystemResource fileSystemResource = new FileSystemResource(filePath + "/" + fileName); MultiValueMap<String, Object> form = new LinkedMultiValueMap<>(); form.add("file", fileSystemResource);RestTemplate restTemplate1 = new RestTemplate(); restTemplate1.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); ResponseEntity<String> response1 = restTemplate1.exchange(url, HttpMethod.POST, new HttpEntity<>(form, headers), String.class);//防止返回信息乱码 System.out.println("返回信息为: " + response1.getBody());//获取返回的fileVersionId JSONObject data = JSONObject.parseObject(response1.getBody()).getJSONObject("data"); String fileVersionId = data.getString("fileVersionId");
第三步:调用转换接口。每次调用接口时,用到了哪些参数就将这些参数去生成 sign,multipartFile除外,用不到的参数也不要传null或者空字符串。
/*** 调用转换接口*/ Map<String, String[]> paramMap = new HashMap<>(); paramMap.put("fileVersionId", new String[]{fileVersionId}); paramMap.put("convertType", new String[]{CONVERTTYPE}); String s = getSign(paramMap);//生成签名 String converurl = "http://eic.yozocloud.cn/api/convert/file?appId={0}&sign={1}&fileVersionId={2}&convertType={3}"; converurl = converurl.replace("{0}", APPID).replace("{1}", s).replace("{2}",fileVersionId).replace("{3}",CONVERTTYPE);RestTemplate restTemplate2 = new RestTemplate(); restTemplate2.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); ResponseEntity<String> response2 = restTemplate2.postForEntity(converurl, null, String.class); System.out.println("返回信息为: " + response2.getBody());
正常情况下,转换类型设置正确,文件上传正确,调用格式转换接口后的返回信息如下:
第四步:调用下载接口下载查看。调用转换接口并返回操作成功之后,在设置的回调地址除会收到转换之后的文件版本 Id,如下:
使用收到的新的文件版本 Id再次生成签名并调用下载接口(http://dmc.yozocloud.cn/api/file/download),该地址可直接放入浏览器地址栏下载查看。
源文件
格式转换后得到的文件
注意:
- 用户须在格式转换的开发信息中填写正确的数据回调地址来接收新的文件版本 id,并且在数据回调URL下新增一个POST接口,接口名称设置为:/3rd/edit/callBack;
接口接收转换回调数据代码示例
- 格式转换 convertType参数一定要对应正确,否则调用接口时会返回“文档格式与转换类型不匹配“。
使用Java对接永中格式转换相关推荐
- Java时间戳与日期格式转换工具类
Java时间戳与日期格式转换工具类 在做web开发时,有时候需要用到时间戳,在前台进行日期转换,从数据库中取出来是日期格式的,这里记录下使用的转换工具类(这些都是静态方法,通过类名.方法的形式即可调用 ...
- java 导入excel 日期格式转换
java 导入excel 日期格式转换 导入日期格式后 获取到的value值为 数值或小数值 直接上硬货 cell = row.getCell(4);String go_time = getCellV ...
- Java ISO 8601时间格式转换
String pattern = "YYYY-MM-dd'T'HH:mm:ss.SSSZZ"; String timeStr=DateFormatUtils.format(new ...
- java日期和字符串格式转换
两部分:字符串转日期和日期转字符串 日期和字符串的格式转换,仿佛是一个永恒的编程话题.所有开发语言好像都有这个问题,C#啦,javascript啦,现在轮到记录下java.偏偏又没有什么方便.标准的方 ...
- JAVA日期类的格式转换
在java中我们输出日期类的时候不是我们想要的格式,所以我们需要转换格式 /*** 日期格式改成 yyyy-MM-dd HH:mm:ss*/public static String getTimeBy ...
- Java——时间戳和时间格式转换
时间戳(TimeStamp):通常是一个字符序列,唯一地标志某一刻的时间.Java 中时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数. 一.获取时间戳的方式 1.Sy ...
- 【Java】SpringBoot后端格式转换:把Word转成PDF再按页转成图片在前端展示(Linux)
ConvertUtil 1. word2pdf 1.1 aspose-word插件 1.2 word转pdf 1.2.1 添加license文件 1.2.2 具体实现 2. pdf2imgByPage ...
- java解析Excel日期格式转换问题
在导入excel的数据的时候遇见一个问题就是导入excel的时间的时候,获取到的是五位数的字符串,这让我措手不及,然后使用平常转换时间戳的办法进行转换发现竟然不行,这还是算了吧.果断度娘助我渡过.看到 ...
- linux 存文件格式,windows保存的文件传输到linux中格式转换
[leetcode]Remove Element 题目概述: Given an array and a value, remove all instances of that value in pla ...
- java 带t日期格式转换_自我整理:java 日期转换
1.获取特定日期格式的字符串,当前时间 SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Dat ...
最新文章
- swift3.0之闭包
- C++对象赋值的四种方式
- 80后,从爱情,到婚姻
- coreData使用
- python 2.7 简单模拟登陆网站
- html 整行选择状态,Layui表格选中指定行的radio单选框并滚动到该行的实现代码
- java8 streams_Java 8 Streams API:对流进行分组和分区
- Kerberos Hbase Api 操作
- TypeError: rose() takes 0 positional arguments but 1 was given--python报错
- java获取多线程执行结果几种方式小结
- 在spring官网上下载历史版本的spring插件,springsource-tool-suite
- 数学之美 与 浪潮之巅
- spring-aspectj的几个aop注解
- 去掉Tomcat的管理页面
- 《树莓派渗透测试实战》——1.7 树莓派渗透测试场景
- limbo pc for android,「Limbo PC emulator」可以让安卓手机安装 Windows 10 了
- 平安银行java面试_平安银行JAVA笔试题一.doc
- linux如何共享网络打印机,Ubunt如何安装网络打印机的详细图文步骤
- 【油猴插件】用Tampermonkey来实现百度云满速下载和批量离线
- 解决雷神笔记本风扇声音太响太吵问题