<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Spring Boot + Apache Tika 實現文檔內容解析

      一、Tika簡介

      Apache Tika 是由 Apache軟件基金會 開發的開源文檔處理工具,基于 Java 語言實現,支持自動檢測并解析超過1000種文件

      格式(如PDF、Office文檔、多媒體文件等),提取元數據、結構化文本內容及語言屬性,為搜索引擎和內容索引工具提供統一接口。 

      核心功能

      • ?文檔類型識別?:通過文件頭字節、文件名擴展及容器格式深度解析多重檢測機制確定文件類型。
      • ?元數據提取?:獲取文件作者、創建時間、修改日期、標題等元數據信息。 ?
      • ?文本提取?:去除HTML標記并提取純文本內容,支持流式處理大文件以避免內存溢出。 ?
      • ?語言檢測?:識別文本使用的語言(如中文、英文、法文)。 ?
      • ?媒體元數據提取?:支持音頻/視頻文件的分辨率、時長、編碼格式等信息的提取。 

      二、添加 Apache Tika 依賴

      <dependency>
          <groupId>org.apache.tika</groupId>
          <artifactId>tika-core</artifactId>
          <version>1.26</version>
      </dependency>
      <dependency>
          <groupId>org.apache.tika</groupId>
          <artifactId>tika-parsers</artifactId>
          <version>1.26</version>
      </dependency>

      三、創建文檔解析服務

      import org.apache.tika.parser.AutoDetectParser;
      import org.apache.tika.sax.BodyContentHandler;
      import org.springframework.stereotype.Service;
      import org.apache.tika.metadata.Metadata;
      import java.io.File;
      import java.io.FileInputStream;
      import java.io.InputStream;
      
      /**
       * @ClassName:DocumentParserService
       * @Description: 創建文檔解析服務
       * @Author: songwp
       * @Date: 2025/8/5 16:27
       */
      @Service
      public class DocumentParserService {
      
          /**
           * 解析文檔內容
           * @param file
           * @return
           */
          public String parseDocument(File file) {
              StringBuilder content = new StringBuilder();
              try (InputStream stream = new FileInputStream(file)) {
                  BodyContentHandler handler = new BodyContentHandler();
                  Metadata metadata = new Metadata();
                  AutoDetectParser parser = new AutoDetectParser();
                  parser.parse(stream, handler, metadata);
                  content.append(handler.toString());
              } catch (Exception e) {
                  e.printStackTrace();
                  content.append("Error: ").append(e.getMessage());
              }
              return content.toString();
          }
      }

      四、創建控制器類

      import com.ruoyi.web.controller.tika.DocumentParserService;
      import org.springframework.beans.factory.annotation.Autowired;
      import org.springframework.http.ResponseEntity;
      import org.springframework.web.bind.annotation.PostMapping;
      import org.springframework.web.bind.annotation.RequestMapping;
      import org.springframework.web.bind.annotation.RequestParam;
      import org.springframework.web.bind.annotation.RestController;
      import org.springframework.web.multipart.MultipartFile;
      import java.io.File;
      import java.io.IOException;
      
      /**
       * @ClassName:DocumentParserController
       * @Description: 解析文檔的控制器
       * @Author: songwp
       * @Date: 2025/8/5 16:29
       */
      @RestController
      @RequestMapping("/api/documents")
      public class DocumentParserController {
      
          @Autowired
          private DocumentParserService documentParserService;
      
          @PostMapping("/parse")
          public ResponseEntity<String> parseDocument(@RequestParam("file") MultipartFile file) {
              if (file.isEmpty()) {
                  return ResponseEntity.badRequest().body("File is empty");
              }
              try {
                  // 將上傳的文件轉換為臨時文件
                  File tempFile = File.createTempFile("document-", ".tmp");
                  file.transferTo(tempFile);
                  tempFile.deleteOnExit();
      
                  // 調用文檔解析服務解析文檔內容
                  String parsedContent = documentParserService.parseDocument(tempFile);
                  return ResponseEntity.ok(parsedContent);
              } catch (IOException e) {
                  e.printStackTrace();
                  return ResponseEntity.status(500).body("Error: " + e.getMessage());
              }
          }
      }

      五、配置和運行

      配置 Apache Tika 數據文件
      確保你的項目根目錄有一個 tessdata 文件夾,其中包含 Apache Tika 的數據文件。
      (1) Apache Tika 官方網站 下載合適的語言數據文件。
      (2) 云盤數據下載:https://pan.baidu.com/s/13oPR2r7qOE6lt6SgbpWOQA 提取碼: uaaw 

      六、測試與驗證

      (1)以下是準備的文檔內容截圖

      image

       (2) tika文檔內容解析如下:

      image

       七、注意事項

      1、 文件格式支持
      確保上傳的文件是 Apache Tika 支持的格式,如 PDF、Word 文檔、Excel 表格等。
      2、優化解析性能
      針對大文件和復雜格式的文檔,可能需要優化解析性能。可以考慮使用異步處理、文件流處理等技術來提升解析速度和穩定性。
      posted @ 2025-08-05 17:06  [奮斗]  閱讀(146)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲国产成人久久一区久久| 无翼乌口工全彩无遮挡h全彩| 国产三级精品三级色噜噜| 一本av高清一区二区三区| 国产成人综合色就色综合| 国产一区二区午夜福利久久| 伊人狠狠色j香婷婷综合| 少妇高潮潮喷到猛进猛出小说 | 亚洲AV无码久久精品日韩| 亚洲欧美色综合影院| 亚洲精品~无码抽插| 亚洲一国产一区二区三区| 激情五月开心婷婷深爱| 夜鲁鲁鲁夜夜综合视频| 少妇高潮激情一区二区三| av无码精品一区二区乱子| 国产精品天干天干综合网| 蒙自县| 人妻精品中文字幕av| 国产在线精品欧美日韩电影| 国产成人精品亚洲日本语言| 中文字幕久无码免费久久| 久久久久国产一区二区| 人妻一区二区三区人妻黄色| 无码熟妇人妻av影音先锋| 高清自拍亚洲精品二区| 亚洲综合成人一区二区三区 | 国产成人精品亚洲午夜麻豆| 色欲久久久天天天综合网| 视频一区二区三区四区五区| 无码国内精品久久人妻蜜桃| 国产日韩久久免费影院| 成人自拍短视频午夜福利| 欧美精品在线观看视频 | 日本丰满熟妇videossexhd| 亚洲精品国产字幕久久麻豆| 婷婷国产亚洲性色av网站| 国产日韩综合av在线| 真实国产精品视频400部| 国产亚洲精品综合一区二区| 亚洲精品麻豆一区二区|