Search in sources :

Example 1 with DocJobObject

use of com.qcloud.cos.model.ciModel.job.DocJobObject in project cos-java-sdk-v5 by tencentyun.

the class DocJobDemo method processDocJob.

/**
 * 文档预览完整调用demo
 */
public static void processDocJob(COSClient client) throws InterruptedException {
    String bucketName = "demo-123456789";
    // 1.获取队列id,需要先开启文档预览功能。
    DocQueueRequest queueRequest = new DocQueueRequest();
    queueRequest.setBucketName(bucketName);
    DocListQueueResponse response = client.describeDocProcessQueues(queueRequest);
    List<MediaQueueObject> queueList = response.getQueueList();
    String queueId = "";
    if (queueList.size() != 0) {
        MediaQueueObject mediaQueueObject = queueList.get(0);
        queueId = mediaQueueObject.getQueueId();
    } else {
        System.out.println("获取队列失败");
        return;
    }
    // 2.发送文档预览任务
    // 2.1添加请求参数 参数详情请见api接口文档
    DocJobRequest request = new DocJobRequest();
    request.setBucketName(bucketName);
    DocJobObject docJobObject = request.getDocJobObject();
    docJobObject.setTag("DocProcess");
    docJobObject.getInput().setObject("1.pdf");
    docJobObject.setQueueId(queueId);
    DocProcessObject docProcessObject = docJobObject.getOperation().getDocProcessObject();
    docProcessObject.setQuality("100");
    docProcessObject.setZoom("100");
    docProcessObject.setEndPage("-1");
    docProcessObject.setTgtType("jpg");
    MediaOutputObject output = docJobObject.getOperation().getOutput();
    output.setRegion(client.getClientConfig().getRegion().getRegionName());
    output.setBucket(bucketName);
    output.setObject("demo/pic-${Number}.jpg");
    // 2.2发送预览请求
    DocJobResponse docProcessJobs = client.createDocProcessJobs(request);
    // 3.轮询查询任务结果(也可以配置队列的回调url,使用回调接口获取任务结果)
    DocJobRequest docJobRequest = new DocJobRequest();
    docJobRequest.setBucketName(bucketName);
    String jobId = docProcessJobs.getJobsDetail().getJobId();
    docJobRequest.setJobId(jobId);
    while (true) {
        DocJobResponse docJobResponse = client.describeDocProcessJob(docJobRequest);
        String state = docJobResponse.getJobsDetail().getState();
        // 判断任务状态
        if ("Success".equalsIgnoreCase(state) || "Failed".equalsIgnoreCase(state)) {
            // 处理业务逻辑
            System.out.println(docJobResponse);
            break;
        } else {
            Thread.sleep(500);
        }
    }
}
Also used : DocQueueRequest(com.qcloud.cos.model.ciModel.queue.DocQueueRequest) DocJobResponse(com.qcloud.cos.model.ciModel.job.DocJobResponse) DocJobObject(com.qcloud.cos.model.ciModel.job.DocJobObject) DocListQueueResponse(com.qcloud.cos.model.ciModel.queue.DocListQueueResponse) DocProcessObject(com.qcloud.cos.model.ciModel.job.DocProcessObject) MediaOutputObject(com.qcloud.cos.model.ciModel.common.MediaOutputObject) DocJobRequest(com.qcloud.cos.model.ciModel.job.DocJobRequest) MediaQueueObject(com.qcloud.cos.model.ciModel.queue.MediaQueueObject)

Example 2 with DocJobObject

use of com.qcloud.cos.model.ciModel.job.DocJobObject in project cos-java-sdk-v5 by tencentyun.

the class DocJobDemo method createDocJobs.

/**
 * createDocJobs 接口用于创建异步文档预览任务。
 * 将文档转为指定类型(jpg、png、pdf)并保存至指定的cos路径下
 * 该接口为发送任务,如果需要获取转换结果 需要调用查询接口。
 *
 * @param client
 */
public static void createDocJobs(COSClient client) {
    // 1.创建任务请求对象
    DocJobRequest request = new DocJobRequest();
    // 2.添加请求参数 参数详情请见api接口文档
    request.setBucketName("examplebucket-1250000000");
    DocJobObject docJobObject = request.getDocJobObject();
    docJobObject.setTag("DocProcess");
    docJobObject.getInput().setObject("demo.docx");
    docJobObject.setQueueId("pc02270c617ae4b6d9b0a52cb1c*****");
    DocProcessObject docProcessObject = docJobObject.getOperation().getDocProcessObject();
    docProcessObject.setQuality("100");
    docProcessObject.setZoom("100");
    docProcessObject.setStartPage("1");
    docProcessObject.setEndPage("3");
    docProcessObject.setTgtType("png");
    docProcessObject.setDocPassword("123");
    MediaOutputObject output = docJobObject.getOperation().getOutput();
    output.setRegion("ap-chongqing");
    output.setBucket("examplebucket-1250000000");
    output.setObject("mark/pic-${Page}.jpg");
    // 3.调用接口,获取任务响应对象
    DocJobResponse docProcessJobs = client.createDocProcessJobs(request);
    System.out.println(docProcessJobs);
}
Also used : DocJobResponse(com.qcloud.cos.model.ciModel.job.DocJobResponse) DocJobObject(com.qcloud.cos.model.ciModel.job.DocJobObject) DocProcessObject(com.qcloud.cos.model.ciModel.job.DocProcessObject) MediaOutputObject(com.qcloud.cos.model.ciModel.common.MediaOutputObject) DocJobRequest(com.qcloud.cos.model.ciModel.job.DocJobRequest)

Example 3 with DocJobObject

use of com.qcloud.cos.model.ciModel.job.DocJobObject in project cos-java-sdk-v5 by tencentyun.

the class RequestXmlFactory method convertToXmlByteArray.

/**
 * Converts the DocJobRequest to an XML fragment that can be sent to the DocJobRequestParams of CI
 *
 * @param request The container which provides options for restoring an object
 * @return A byte array containing the data
 * @throws CosClientException
 */
public static byte[] convertToXmlByteArray(DocJobRequest request) {
    XmlWriter xml = new XmlWriter();
    DocJobObject docJobObject = request.getDocJobObject();
    xml.start("Request");
    xml.start("Tag").value(docJobObject.getTag()).end();
    xml.start("QueueId").value(docJobObject.getQueueId()).end();
    xml.start("Input");
    xml.start("Object").value(docJobObject.getInput().getObject()).end();
    xml.end();
    if (CheckObjectUtils.objIsNotValid(docJobObject)) {
        xml.start("Operation");
        xml.start("Output");
        MediaOutputObject output = docJobObject.getOperation().getOutput();
        addIfNotNull(xml, "Region", output.getRegion());
        addIfNotNull(xml, "Bucket", output.getBucket());
        addIfNotNull(xml, "Object", output.getObject());
        xml.end();
        xml.start("DocProcess");
        DocProcessObject docProcess = docJobObject.getOperation().getDocProcessObject();
        addIfNotNull(xml, "SrcType", docProcess.getSrcType());
        addIfNotNull(xml, "TgtType", docProcess.getTgtType());
        addIfNotNull(xml, "SheetId", docProcess.getSheetId());
        addIfNotNull(xml, "StartPage", docProcess.getStartPage());
        addIfNotNull(xml, "EndPage", docProcess.getEndPage());
        addIfNotNull(xml, "ImageParams", docProcess.getImageParams());
        addIfNotNull(xml, "DocPassword", docProcess.getDocPassword());
        addIfNotNull(xml, "Comments", docProcess.getComments());
        addIfNotNull(xml, "PaperDirection", docProcess.getPaperDirection());
        addIfNotNull(xml, "Quality", docProcess.getQuality());
        addIfNotNull(xml, "Zoom", docProcess.getZoom());
        xml.end();
        xml.end();
    }
    xml.end();
    return xml.getBytes();
}
Also used : DocJobObject(com.qcloud.cos.model.ciModel.job.DocJobObject) DocProcessObject(com.qcloud.cos.model.ciModel.job.DocProcessObject) MediaOutputObject(com.qcloud.cos.model.ciModel.common.MediaOutputObject)

Aggregations

MediaOutputObject (com.qcloud.cos.model.ciModel.common.MediaOutputObject)3 DocJobObject (com.qcloud.cos.model.ciModel.job.DocJobObject)3 DocProcessObject (com.qcloud.cos.model.ciModel.job.DocProcessObject)3 DocJobRequest (com.qcloud.cos.model.ciModel.job.DocJobRequest)2 DocJobResponse (com.qcloud.cos.model.ciModel.job.DocJobResponse)2 DocListQueueResponse (com.qcloud.cos.model.ciModel.queue.DocListQueueResponse)1 DocQueueRequest (com.qcloud.cos.model.ciModel.queue.DocQueueRequest)1 MediaQueueObject (com.qcloud.cos.model.ciModel.queue.MediaQueueObject)1