当前位置: 首页 > news >正文

网站的整体风格大连在哪个省市

网站的整体风格,大连在哪个省市,wordpress 原理,为什么网站生成后不显示需求&#xff1a;识别pdf文件中的中文 根据github项目mymonstercat 改造,先将pdf文件转为png文件存于临时文件夹&#xff0c;然后通过RapidOcr转为文字,最后删除临时文件夹 1、引入依赖 <dependency><groupId>org.apache.pdfbox</groupId><artifactId&g…

需求:识别pdf文件中的中文

根据github项目mymonstercat 改造,先将pdf文件转为png文件存于临时文件夹,然后通过RapidOcr转为文字,最后删除临时文件夹

1、引入依赖

		<dependency><groupId>org.apache.pdfbox</groupId><artifactId>fontbox</artifactId><version>3.0.3</version></dependency><dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>3.0.3</version></dependency><!-- ocr图片识别 --><dependency><groupId>io.github.mymonstercat</groupId><artifactId>rapidocr</artifactId><version>0.0.7</version></dependency><dependency><groupId>io.github.mymonstercat</groupId><artifactId>rapidocr-onnx-platform</artifactId><version>0.0.7</version></dependency><!-- 本地测试可不引 , 服务器部署linux x86架构 下引入 ,其他环境部署可搜maven --><dependency><groupId>io.github.mymonstercat</groupId><artifactId>rapidocr-onnx-linux-x86_64</artifactId><version>1.2.2</version></dependency>

2、工具类

import org.springframework.util.StringUtils;
import com.benjaminwan.ocrlibrary.OcrResult;
import com.benjaminwan.ocrlibrary.TextBlock;import io.github.mymonstercat.Model;
import io.github.mymonstercat.ocr.InferenceEngine;
import org.apache.pdfbox.Loader;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.springframework.stereotype.Service;import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.ArrayList;
import java.util.Base64;
import java.util.List;
import java.util.UUID;
@Service
public class PdfOCRConverter {//临时输出png文件路径private static final String outputDirs = "D:/pdfToImg/temp/";public static void main(String[] args) throws IOException {List<String> fileNameList = getWords("D:/Download/123.pdf");for (String fileName : fileNameList) {System.out.println(fileName);}}public static List<String> getWords(String pdfFilePath) throws IOException {String outputDir =  outputDirs + UUID.randomUUID().toString().replace("-", "");List<String> fileNameList = convertPdfToImage(pdfFilePath, outputDir);List<String> wordsList = new ArrayList<>();for (String fileName : fileNameList) {System.out.println("识别图片:"+fileName);if (StringUtils.isEmpty(fileName)){break;}List<String> words = runOcr(fileName);for (String word : words) {System.out.println(word);wordsList.add(word);}}deleteDirectory(outputDir);return wordsList;}public static List<String> runOcr(String path) {List<String> results = new ArrayList<>();InferenceEngine engine = InferenceEngine.getInstance(Model.ONNX_PPOCR_V3);OcrResult ocrResult = engine.runOcr(path);for (TextBlock textBlock : ocrResult.getTextBlocks()) {results.add(textBlock.getText());}return results;}public static List<String> convertPdfToImage(String pdfFilePath, String outputDir) {// 设置DPI(越高图片越清晰,但文件也会更大)int dpi = 300;List<String> fileNameList = new ArrayList<>();File file = new File(pdfFilePath);try (PDDocument document = Loader.loadPDF(file)) {PDFRenderer pdfRenderer = new PDFRenderer(document);String pdfFileName = file.getName().replace(".pdf", "");String name = pdfFileName;for (int page = 0; page < document.getNumberOfPages(); page++) {BufferedImage bim = pdfRenderer.renderImageWithDPI(page, dpi);String folder = createFolder(outputDir + "/" + name);String fileName = folder + "/" + pdfFileName + "_page_" + (page + 1) + ".png";ImageIO.write(bim, "png", new File(fileName));fileNameList.add(fileName);System.out.println("生成图片:"+fileName);}} catch (IOException e) {e.printStackTrace();}return fileNameList;}public static void deleteDirectory(String path) throws IOException {// 如果路径不指向一个目录,则抛出异常Path directory = Paths.get(path);if (!Files.isDirectory(directory)) {throw new IOException("The provided path is not a directory.");}// 遍历目录中的所有文件和子目录Files.walkFileTree(directory, new SimpleFileVisitor<Path>() {@Overridepublic FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {// 删除文件Files.delete(file);return FileVisitResult.CONTINUE;}@Overridepublic FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {// 所有内容被删除后删除目录本身Files.delete(dir);return FileVisitResult.CONTINUE;}@Overridepublic FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException {// 如果访问文件失败,则抛出异常throw exc;}});}public static String createFolder(String folderPath) {String txt = folderPath;try {File myFilePath = new File(txt);txt = folderPath;if (!myFilePath.exists()) {myFilePath.mkdirs();}} catch (Exception e) {e.printStackTrace();}return txt;}public static List<String> getWordsByBase64(String base64) throws IOException {List<String> words = new ArrayList<>();if (StringUtils.isEmpty(base64)) {return null;}String outputDir = outputDirs + UUID.randomUUID().toString().replace("-", "");// 解码Base64字符串byte[] decodedBytes = Base64.getDecoder().decode(base64);createFolder(outputDir);// 输出的PDF文件名String outputFilePath = outputDir+"/output.pdf";try (FileOutputStream fos = new FileOutputStream(outputFilePath)) {// 将解码后的字节数组写入文件fos.write(decodedBytes);System.out.println("PDF文件已成功生成: " + outputFilePath);words = getWords(outputFilePath);} catch (Exception e) {e.printStackTrace();}deleteDirectory(outputDir);return words;}}
http://www.yayakq.cn/news/465632/

相关文章:

  • 我们是谁 网站运营互联网平台建设方案
  • 没有服务器如何做网站重庆怎么推广企业网站
  • 简述电子政务系统网站建设的基本过程网站设计师和ui设计师
  • 网站广告案例wordpress单栏极简
  • 网站seo外链建设腾讯朋友圈广告投放价格
  • 旅行社手机网站建设方案山西太原今天重大新闻
  • 网站如何做h5动态页面设计工单系统设计
  • 建网站有域名和主机深圳网站设计价格
  • 旅行社做网站wordpress 问答插件
  • 工程建设比选公告固价方式网站长沙商城网站制作
  • 做网站购买备案域名good建筑网站
  • 百度怎么建立自己的网站wordpress调用内容代码
  • 中国建设银行信用卡黑名单网站知名网建公司
  • 简单的购物网站开发手机发博客wordpress
  • 网站后台程序设计常用语言 技术的分析比较网站设计论文结束语
  • 台州学校网站建设WordPress如何禁止游客访问
  • 百度应用市场下载安装seo咨询师招聘
  • 做贷款网站犯法wordpress手机qq登录地址修改
  • 自微网站首页上海网站设计与
  • 保健品网站dede模板凤凰网站建设公司
  • 手机特殊网站扬州市广陵区城乡建设局网站
  • 网站建设企业网站价格定制和订制
  • 建设厅职业资格中心网站自己做的网站字体变成方框
  • 有哪些免费推广网站接平面设计私活的网站
  • 在建项目人员查询网站nas可以做网站下载服务器吗
  • 阿里巴巴电子商务网站建设目的wordpress扫码阅读
  • 上海金融网站建设公司网站301和302
  • 怎么清理网站后门文件自适应单页网站模板
  • wordpress如何设置中文百度seo优化技术
  • 如何设计大型电商网站建设asp汽车租凭网站源码