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

网站办公室科技术语

网站办公室,科技术语,做网站周记,网站建设百度经验需求#xff1a;识别pdf文件中的中文 根据github项目mymonstercat 改造,先将pdf文件转为png文件存于临时文件夹#xff0c;然后通过RapidOcr转为文字,最后删除临时文件夹 1、引入依赖 dependencygroupIdorg.apache.pdfbox/groupIdartifactId识别pdf文件中的中文 根据github项目mymonstercat 改造,先将pdf文件转为png文件存于临时文件夹然后通过RapidOcr转为文字,最后删除临时文件夹 1、引入依赖 dependencygroupIdorg.apache.pdfbox/groupIdartifactIdfontbox/artifactIdversion3.0.3/version/dependencydependencygroupIdorg.apache.pdfbox/groupIdartifactIdpdfbox/artifactIdversion3.0.3/version/dependency!-- ocr图片识别 --dependencygroupIdio.github.mymonstercat/groupIdartifactIdrapidocr/artifactIdversion0.0.7/version/dependencydependencygroupIdio.github.mymonstercat/groupIdartifactIdrapidocr-onnx-platform/artifactIdversion0.0.7/version/dependency!-- 本地测试可不引 , 服务器部署linux x86架构 下引入 ,其他环境部署可搜maven --dependencygroupIdio.github.mymonstercat/groupIdartifactIdrapidocr-onnx-linux-x86_64/artifactIdversion1.2.2/version/dependency2、工具类 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 {ListString fileNameList getWords(D:/Download/123.pdf);for (String fileName : fileNameList) {System.out.println(fileName);}}public static ListString getWords(String pdfFilePath) throws IOException {String outputDir outputDirs UUID.randomUUID().toString().replace(-, );ListString fileNameList convertPdfToImage(pdfFilePath, outputDir);ListString wordsList new ArrayList();for (String fileName : fileNameList) {System.out.println(识别图片fileName);if (StringUtils.isEmpty(fileName)){break;}ListString words runOcr(fileName);for (String word : words) {System.out.println(word);wordsList.add(word);}}deleteDirectory(outputDir);return wordsList;}public static ListString runOcr(String path) {ListString 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 ListString convertPdfToImage(String pdfFilePath, String outputDir) {// 设置DPI越高图片越清晰但文件也会更大int dpi 300;ListString 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 SimpleFileVisitorPath() {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 ListString getWordsByBase64(String base64) throws IOException {ListString 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.dnsts.com.cn/news/34166.html

相关文章:

  • 图片网站 seo北京建设网页
  • wordpress企业站爱主题archdaily
  • 搭建商城到底哪家好成都网站优化哪家好
  • 网站维护团队网站配色设计
  • 访问同一网站多次wordpress优化搜索
  • 建网站 找个人找做网站的公司
  • 建站快车怎么样集团做网站
  • 行业用品网站怎么建设外链专做彩票的网站
  • 做代练去什么网站安全贺州市住房和城乡建设局网站
  • 唐山网站排名提升唐山免费网站制作
  • 建设银行网站首页广东建设厅官网证件查询
  • 怎么做网站内容百度快照优化网站
  • html5 手机网站导航条安丘网站建设
  • 泰安整站优化2023能用的磁力搜索引擎
  • 多用户网站福田欧曼服务站电话
  • 东营建设网站公司电话号码江西南昌建设厅网站
  • 中山专业做网站公司重庆模板网站建设
  • 做网站如何收集资料网站版块策划
  • 农村做网站开发网络营销的概念与含义谷歌
  • 深圳网站建设服务哪个便宜啊东莞建筑设计公司排名
  • 深圳网站建设流程图网站开发实用技术第二版答案
  • 英国男女做那个视频网站学校如何建网站
  • 中山百度网站排名微网站建设公司首选
  • 襄阳网站推广优化技巧怎样做一个公众号
  • 湘潭做网站 磐石网络网店的网站设计方案
  • 建设银行企业网站银行新开三端互通传奇网站
  • 深圳微商城网站设计价格网站没有备案会怎么样
  • 山东城市建设职业学院官方网站软件开发需求发布平台
  • 在线视频网站a一级爰a做免费网站开发一级分销
  • 免费网站大全黄页动漫网站关键词排名分析