• PDF转OFD ~java实现


    PDF转OFD ~java实现

    上篇文章记录了一下我第一次对接“超阅云”实现了ofd转pdf功能,想了想,还是再写一篇pdf转ofd的实现,其实对接的API基本一样,如果你是第一次看,建议先看看上一篇文章-“ofd转pdf

    ————————————————

    准备工作

    1. 登录注册超阅云开发者账号,可直接微信扫码登录注册,一键搞定

    2. 进入个人中心,获取API开放秘钥

    开始开发

    1、接口概述
    (1)采用HTTP接口模式,编码UTF-8
    (2)接口地址: https://surread.esign.cn
    (3)接口请求前必须先申请成为开发者,并获取accessKey和secretKey
    (4)接口请求头需要带上鉴权参数Authorization ,详情见“鉴权方式"

    2、鉴权方式
    (1)鉴权规则
    第一步:参数签名signature
    MD5(post + url + 请求时间戳 + 请求随机串 + MD5(ak+sk))
    第二步:base64加密 Authorization
    base64(method=post,url=xxx,timestamp=xxx,nonce_str=xxx,ak=%s,signature=xxx)
    第三步: 将生成的Authorization作为参数放到请求头中
    (2)代码示例

    import cn.hutool.core.codec.Base64;
    import cn.hutool.core.util.RandomUtil;
    import cn.hutool.crypto.digest.DigestAlgorithm;
    import cn.hutool.crypto.digest.Digester;
    
    public class AuthorizationUtil {
    
        public static void main(String[] args) {
    
            String ak = "开发者标识";
            String sk = "开发者秘钥";
            // 生成
            String requestMethod = "post".toUpperCase();
            String url = "/api/developer/convert/pdf2ofd";
            Long timestamp = System.currentTimeMillis();
            String randomStr = RandomUtil.randomString(20);
            String authorization = generateAuthorization(requestMethod,url,timestamp,randomStr,ak,sk);
            System.out.println("生成:"+authorization);
        }
    
        public static String generateAuthorization(String requestMethod, String url, Long timestamp, String randomStr, String ak, String sk){
            Digester md5 = new Digester(DigestAlgorithm.MD5);
            // signature = MD5(requestMethod + url + 请求时间戳 + 请求随机串 + MD5(ak+sk))
            String signature = md5.digestHex(requestMethod+url+timestamp+randomStr+md5.digestHex(ak+sk));
            //   Authorization = base64(method=xxx,url=xxx,timestamp=xxx,nonce_str=xxx,ak=xxx,signature=xxx)
            return Base64.encode(String.format("method=%s,url=%s,timestamp=%s,nonce_str=%s,ak=%s,signature=%s",requestMethod,url,timestamp,randomStr,ak,signature));
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    (2)一些踩坑:
    鉴权方式其实就是base64+Md5的结合,这里我引了一个hutool工具包,挺好用的,大家也可以试试
    鉴权参数主要是不同的接口url参数对应的就是接口的url

    API测试POST

    postman调用测试

    curl --location --request POST 'https://surread.esign.cn/api/developer/convert/pdf2ofd' \
    --header 'Authorization: bWV0aG9kPVBPU1QsdXJsPS9hcGkvZGV2ZWxvcGVyL2NvbnZlcnQvb2ZkMnBkZix0aW1lc3RhbXA9MTY2ODQ5Mjg1NTI3Nyxub25jZV9zdHI9cnZsaXY1emY0bjByOWdqeGx6dW4sYWs9b3NlZjA2NGtjdnA1MzJ6a2k1dnYyaTJicGwzOHJyam4sc2lnbmF0dXJlPTAwZWRlOTY4YzNhMmM0MGY1ZTcwXXXXXXXXXX' \
    --form 'file=@"/C:/Users/DESKTOP-J21/Documents/pdf/PFD小文档.pdf"'
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    !!!注意: 同样再调用下载/预览文件的API接口去获取或者预览转换后的文档
    获取文档下载地址: /api/developer/convert/getDownUrlByFileKey
    获取文档预览地址: /api/developer/convert/getPreviewUrlByFileKey
    详细接口文档可以参考“超阅云”官网的文档介绍

  • 相关阅读:
    互联网简史-分久必合,合久必分
    RHCE学习 --- 第八次作业(ansible)
    安装React脚手架
    JavaPTA练习题 7-5 输出所有的水仙花数
    A-LEVEL计算机科学得A*难吗?
    JDK21来了!附重要更新说明
    AJAX学习日记——Day 4
    吃瓜神奇!企查查、天眼查、天眼销,到底哪家强?
    第一次世界大战 重要词汇与短语
    Spring 5 学习整理
  • 原文地址:https://blog.csdn.net/const_qiu/article/details/127921072