| | |
| | | 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; |
| | |
| | | String filename = file.getOriginalFilename().trim(); |
| | | String felinamePath = FileUploadUtils.extractFilename(file); |
| | | // String pathFileName = FileUploadUtils.getPathFileName(filePath, s); |
| | | File file1 = new File(filePath + "/" + felinamePath); |
| | | boolean exists = file1.exists(); |
| | | if (exists) { |
| | | int i = filename.lastIndexOf("."); |
| | | String startStr = filename.substring(0, i); |
| | | String endStr = filename.substring(i, filename.length()); |
| | | 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 + System.currentTimeMillis() + endStr; // your new filename |
| | | String contentType = file.getContentType(); |
| | | byte[] bytes = file.getBytes(); |
| | | file = new MockMultipartFile(newFilename, newFilename, contentType, bytes); |
| | | 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; |
| | | } |
| | | } |
| | | } |