| | |
| | | import com.ruoyi.common.config.RuoYiConfig; |
| | | import com.ruoyi.common.constant.Constants; |
| | | import com.ruoyi.common.core.domain.AjaxResult; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.file.FileUploadUtils; |
| | | import com.ruoyi.common.utils.file.FileUtils; |
| | | import com.ruoyi.framework.config.ServerConfig; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.apache.catalina.connector.Connector; |
| | | import org.apache.catalina.startup.Tomcat; |
| | | import org.apache.coyote.AbstractProtocol; |
| | | import org.apache.pdfbox.pdmodel.PDDocument; |
| | | import org.apache.pdfbox.text.PDFTextStripper; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.http.MediaType; |
| | | import org.springframework.mock.web.MockMultipartFile; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | |
| | | import javax.management.*; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.File; |
| | | import java.lang.management.ManagementFactory; |
| | | import java.util.Set; |
| | | |
| | |
| | | @PostMapping("/common/upload") |
| | | public AjaxResult uploadFile(MultipartFile file) throws Exception { |
| | | |
| | | int tomcatPort1 = getTomcatPort(); |
| | | log.info("tomcatPort1的值为: {}", tomcatPort1); |
| | | //这个省人民是8099,所以直接写死 |
| | | int tomcatPort = 8099; |
| | | try { |
| | | // 上传文件路径 |
| | | String filePath = RuoYiConfig.getUploadPath(); |
| | | |
| | | //判断文件是否存在 |
| | | String filename = file.getOriginalFilename().trim(); |
| | | String felinamePath = FileUploadUtils.extractFilename(file); |
| | | // String pathFileName = FileUploadUtils.getPathFileName(filePath, s); |
| | | for (int i=1;i<500;i++) { |
| | | File file1 = new File(filePath + "/" + felinamePath); |
| | | boolean exists = file1.exists(); |
| | | if (exists) { |
| | | int index = filename.lastIndexOf("."); |
| | | String startStr = filename.substring(0, index); |
| | | String endStr = filename.substring(index, filename.length()); |
| | | |
| | | String newFilename = startStr + "-" + i + endStr; // your new filename |
| | | felinamePath = DateUtils.datePath() + "/" + newFilename; |
| | | String contentType = file.getContentType(); |
| | | byte[] bytes = file.getBytes(); |
| | | file = new MockMultipartFile(newFilename, newFilename, contentType, bytes); |
| | | }else{ |
| | | break; |
| | | } |
| | | } |
| | | // 上传并返回新文件名称 |
| | | String fileName = FileUploadUtils.upload(filePath, file); |
| | | String url1 = serverConfig.getUrl(); |
| | |
| | | } |
| | | return 0; |
| | | } |
| | | |
| | | @ApiOperation("pdf识别") |
| | | @GetMapping("/common/pdfBox") |
| | | public String pdfBox(String filePath) throws Exception { |
| | | try (PDDocument document = PDDocument.load(new File(filePath))) { |
| | | PDFTextStripper stripper = new PDFTextStripper(); |
| | | stripper.setSortByPosition(true); // 按页面排版顺序输出文字,发票必须开这个 |
| | | // 发票代码 |
| | | String codeReg = "发票代码[::](\\d{10,12})"; |
| | | // 发票号码 |
| | | String noReg = "发票号码[::](\\d{8})"; |
| | | // 价税合计 |
| | | String amountReg = "价税合计.*?¥([0-9.]+)"; |
| | | String text=stripper.getText(document); |
| | | return text; |
| | | } |
| | | } |
| | | } |