package com.malk.mcli.controller;

import com.malk.server.common.FilePath;
import com.malk.server.common.McR;
import com.spire.doc.Document;
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 错误抛出与拦截详见CatchException
 */
@Slf4j
@RestController
@RequestMapping("/doc")
public class DocController {


    @Autowired
    private FilePath filePath;

    @PostMapping("doc")
    McR doc() {

        //创建Document实例，加载第一个Word示例文档
        com.spire.doc.Document doc1 = new com.spire.doc.Document();
//        doc1.loadFromFile(filePath.getPath().getFile() + "工作确认单.docx");
        doc1.loadFromFile(filePath.getPath().getFile() + "杉泰-太医管家产品购销合同（实体卡）V2.0.docx");

        //创建Document实例，加载第二个Word示例文档
        com.spire.doc.Document doc2 = new Document();
//        doc2.loadFromFile(filePath.getPath().getFile() + "工作确认单(1).docx");
        doc2.loadFromFile(filePath.getPath().getFile() + "杉泰-太医管家产品购销合同（实体卡）V2.0 2.docx");
//        doc2.loadFromFile(filePath.getPath().getFile() + "杉泰-太医管家产品购销合同（实体卡）V2.0 2.pdf", FileFormat.PDF);

        //比较两个示例文档的内容差异
//        doc1.compare(doc2, "Host");
        doc1.compare(doc2, "宁静");

        //保存结果文档
        doc1.saveToFile(filePath.getPath().getFile() + "diff-衫泰.docx");

        return McR.success();
    }

    @PostMapping("doc2")
    McR doc2() {

        //加载PDF
        PdfDocument pdf = new PdfDocument();
        pdf.loadFromFile(filePath.getPath().getFile() + "杉泰-太医管家产品购销合同（实体卡）V2.0 2.pdf");

        //保存为Word格式
        pdf.saveToFile(filePath.getPath().getFile() + "杉泰-太医管家产品购销合同（实体卡）V2.0 pdf.docx", FileFormat.DOCX);

        com.spire.doc.Document doc1 = new com.spire.doc.Document();
        doc1.loadFromFile(filePath.getPath().getFile() + "杉泰-太医管家产品购销合同（实体卡）V2.0.docx");

        //创建Document实例，加载第二个Word示例文档
        com.spire.doc.Document doc2 = new Document();
        doc2.loadFromFile(filePath.getPath().getFile() + "杉泰-太医管家产品购销合同（实体卡）V2.0 pdf.docx");

        // 比对位置错乱
        //比较两个示例文档的内容差异
//        doc1.compare(doc2, "Host");
        doc1.compare(doc2, "宁静");
//
//        //保存结果文档
        doc1.saveToFile(filePath.getPath().getFile() + "diff-衫泰-pdf.docx");


//        Comparer comparer = new Comparer(filePath.getPath().getFile() + "杉泰-太医管家产品购销合同（实体卡）V2.0.docx");
//        try {
//            comparer.add(filePath.getPath().getFile() + "杉泰-太医管家产品购销合同（实体卡）V2.0 2.docx");
//            comparer.compare("grou-衫泰.docx");
//        } finally {
//            comparer.dispose();
//        }
        return McR.success();
    }

    @PostMapping("doc3")
    McR doc3() {


        // 乱码
//        com.spire.doc.Document doc = new com.spire.doc.Document();
//        doc.loadFromFile(filePath.getPath().getFile() + "杉泰-太医管家产品购销合同（实体卡）V2.0.docx");
//        doc.saveToFile(filePath.getPath().getFile() + "WordToPDF.pdf", com.spire.doc.FileFormat.PDF);

        com.spire.doc.Document doc1 = new com.spire.doc.Document();
        doc1.loadFromFile(filePath.getPath().getFile() + "杉泰-太医管家产品购销合同（实体卡）V2.0.pdf", com.spire.doc.FileFormat.PDF);

        //创建Document实例，加载第二个Word示例文档
        com.spire.doc.Document doc2 = new Document();
        doc2.loadFromFile(filePath.getPath().getFile() + "杉泰-太医管家产品购销合同（实体卡）V2.0 2.pdf", com.spire.doc.FileFormat.PDF);

        //比较两个示例文档的内容差异
//        doc1.compare(doc2, "Host");
        doc1.compare(doc2, "宁静");
//
//        //保存结果文档
        doc1.saveToFile(filePath.getPath().getFile() + "diff-衫泰-pdf-pdf.pdf");


//        Comparer comparer = new Comparer(filePath.getPath().getFile() + "杉泰-太医管家产品购销合同（实体卡）V2.0.docx");
//        try {
//            comparer.add(filePath.getPath().getFile() + "杉泰-太医管家产品购销合同（实体卡）V2.0 2.docx");
//            comparer.compare("grou-衫泰.docx");
//        } finally {
//            comparer.dispose();
//        }
        return McR.success();
    }
}

