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

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

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

      Loading

      純 C#實現+AOT 打造的智能PDF目錄提取工具 PdfTocExtractor

      前言

      最近在做標書的時候發現,有些文檔文字量很大,想讓大模型完全解讀不太現實,先不說 context 長度夠不夠,首先 token 消耗量就爆炸了

      于是想到使用取巧的方式,提取 PDF 的目錄來進行分析,于是說干就干,用 C# 寫了一個工具來實現目錄提取,結果效果還不錯

      后續我又繼續完善這個工具,增加了語義識別等功能

      繼續沿用 C# + AOT + GitHub Actions + dotnet tool + nuget 這套流程的開發

      項目地址: https://github.com/star-plan/pdf-toc-extractor

      類似項目:

      為什么是目錄提???

      PDF 轉 word、markdown 等格式的工具太多了

      咱不卷這個賽道

      (說是這么說,我最近也做了一個??,不排除后續把 PDF 轉文檔的功能集成到這個項目里)

      咱就專注于這個小眾的需求,把 PDF 目錄提取這個功能做好

      后續又增加了語義識別功能,有些 PDF 并沒有內嵌目錄,這時候就需要從 PDF 的內容中分析提取出目錄。

      我一開始使用了模式匹配,結果效果很差,后面換成 NLP 的思路,雖然只是用了最簡單的語義識別,但效果的提升非常可觀!

      可見選對工具還是很重要的

      PdfTocExtractor

      PdfTocExtractor 是一個純 C# AOT 實現的輕量級PDF目錄提取工具,用于從PDF文件中提取目錄(TOC)并導出為多種格式。支持Markdown、JSON、XML、純文本等格式,完全擺脫命令行依賴,無需額外的PDF處理工具,適合在 .NET 項目中內嵌、分發或集成自動化流程中使用。

      通過PdfTocExtractor,您可以輕松從PDF文檔中提取書簽和目錄結構,生成清晰的導航文檔。v2.0新增的語義分析功能讓您即使在PDF沒有嵌入書簽的情況下,也能通過基于NLP的智能分析自動識別章節標題,完美適用于文檔處理、內容分析和自動化工作流。

      ?? 跨平臺、零依賴、極速提取,一切盡在 PdfTocExtractor!

      ? 功能特點

      • ?? 從PDF文件提取書簽/目錄信息
      • ?? 語義分析功能:基于NLP的智能章節標題識別,適用于無書簽PDF
      • ?? 支持多種輸出格式:Markdown、JSON、XML、純文本
      • ?? 可配置的導出選項(層級深度、頁碼格式等)
      • ?? 可擴展的導出器架構,支持自定義格式
      • ? 異步操作支持,高性能處理
      • ??? 提供命令行工具和NuGet包
      • ?? 支持AOT編譯,原生性能無需.NET運行時
      • ?? 跨平臺支持:Windows、Linux、macOS
      • ??? 多種分析模式:默認、嚴格、寬松模式可選

      ?? 支持的輸出格式

      • Markdown (md, markdown) - 適合文檔和網頁顯示,支持層級結構
      • JSON (json) - 適合程序處理和API集成,包含完整元數據
      • XML (xml) - 結構化數據交換,標準化格式
      • Text (txt, text) - 純文本格式,簡潔易讀

      使用方法

      依然和其他工具一樣

      提供了 nuget 庫和 dotnet tool 命令行工具

      可以作為庫引入使用,也可以在命令行使用

      命令行

      安裝 CLI 工具

      dotnet tool install --global PdfTocExtractor.Cli
      

      命令行使用

      # ?? 智能提取(推薦)- 自動選擇最佳方法
      pdftoc smart document.pdf -o output.md
      
      # ?? 提取PDF書簽(傳統方法)
      pdftoc extract document.pdf -o output.md
      
      # ?? 語義分析(v2.0新功能 - 適用于無書簽的PDF)
      pdftoc semantic document.pdf -o output.md
      
      # 指定輸出格式
      pdftoc smart document.pdf -o output.json -f json
      
      # 設置最大層級深度
      pdftoc smart document.pdf -o output.xml --max-depth 3
      
      # 自定義標題和頁碼格式
      pdftoc smart document.pdf -o output.txt --title "我的文檔目錄" --page-format "第 {0} 頁"
      
      # 語義分析 - 嚴格模式(更精確的標題識別)
      pdftoc semantic document.pdf -o output.md --mode strict --confidence 0.7
      
      # 語義分析 - 調試模式(查看分析過程)
      pdftoc semantic document.pdf -o output.md --debug --verbose
      
      # 結構分析 - 寬松模式(識別更多潛在標題)
      pdftoc analyze document.pdf -o output.md --relaxed
      
      # 結構分析 - 自定義參數
      pdftoc analyze document.pdf -o output.md --min-font-size 14 --use-bold --debug
      
      # 智能提取 - 帶結構分析配置
      pdftoc smart document.pdf -o output.md --analysis-preset strict --debug-analysis
      
      # 顯示詳細輸出
      pdftoc smart document.pdf -o output.md --verbose
      
      # 診斷PDF文件問題
      pdftoc diagnose document.pdf
      

      作為庫使用

      安裝核心庫

      dotnet add package PdfTocExtractor
      

      代碼示例

      using PdfTocExtractor;
      using PdfTocExtractor.Exporters;
      using PdfTocExtractor.Models;
      
      // 創建提取器實例
      var extractor = new PdfTocExtractor();
      
      // ?? 智能提取(推薦)- 自動選擇最佳方法
      var tocItems = await extractor.ExtractTocSmartAsync("document.pdf");
      
      // ?? 傳統方法:提取PDF書簽
      var bookmarkItems = await extractor.ExtractTocAsync("document.pdf");
      
      // ?? 結構分析:適用于無書簽的PDF
      var structureItems = await extractor.AnalyzeStructureAsync("document.pdf");
      
      // ?? 結構分析:使用自定義配置
      var analysisOptions = new StructureAnalysisOptions
      {
          MinFontSizeForHeading = 14f,
          UseBoldAsIndicator = true,
          MaxHeadingLevels = 4,
          RequireStandaloneHeadings = true,
          DebugMode = false
      };
      var customStructureItems = await extractor.AnalyzeStructureAsync("document.pdf", analysisOptions);
      
      // ?? 使用預設配置
      var strictItems = await extractor.AnalyzeStructureAsync("document.pdf", StructureAnalysisOptions.Strict);
      var relaxedItems = await extractor.AnalyzeStructureAsync("document.pdf", StructureAnalysisOptions.Relaxed);
      
      // 導出為Markdown
      await extractor.ExportToFileAsync(tocItems, "output.md", "markdown");
      
      // 導出為JSON(帶自定義選項)
      var exportOptions = new ExportOptions
      {
          MaxDepth = 3,
          IncludePageNumbers = true,
          CustomTitle = "文檔目錄"
      };
      await extractor.ExportToFileAsync(tocItems, "output.json", "json", exportOptions);
      
      // 智能提取并直接導出
      await extractor.ExtractSmartAndExportAsync("document.pdf", "output.xml",
          exportOptions: exportOptions,
          structureOptions: StructureAnalysisOptions.Default);
      

      擴展性

      可以通過實現 IExporter 接口來創建自定義導出器:

      public class CustomExporter : IExporter
      {
          public string FormatName => "Custom";
          public string FileExtension => "custom";
      
          public string Export(IEnumerable<TocItem> tocItems, ExportOptions? options = null)
          {
              // 實現自定義導出邏輯
              return "custom format content";
          }
      
          public async Task ExportToFileAsync(IEnumerable<TocItem> tocItems, string filePath, ExportOptions? options = null)
          {
              var content = Export(tocItems, options);
              await File.WriteAllTextAsync(filePath, content);
          }
      }
      
      // 注冊自定義導出器
      extractor.RegisterExporter("custom", new CustomExporter());
      

      技術實現

      PdfTocExtractor 使用以下技術:

      TODO 計劃

      AI 增強功能

      Web 服務接口

      Web 前端界面

      技術架構優化

      高級功能

      企業級功能

      小結

      到這里,PdfTocExtractor 的核心能力已經完整亮相:不管你的 PDF 有沒有書簽,都能一鍵生成結構化目錄;想要命令行批處理還是在代碼里靈活調用,都不在話下。??

      在實際項目中,這個工具已經幫我節省了大量手動整理目錄的時間,也避免了 OCR 誤識別、格式混亂等繁瑣問題。尤其是新版的 SmartSemantic 雙引擎,既快又準,真香!??

      當然,項目還遠遠沒有到“終點”。后續的 AI 目錄識別、Web API、現代化 UI 乃至企業權限體系,都在 Roadmap 上等著逐步落地。如果你也對這些方向感興趣,歡迎 issue / PR / Star,一起把它打造成最好用的 PDF 目錄工具!??

      最后,如果本文對你有所幫助,別忘了給倉庫點個 Star,讓更多小伙伴受益;也歡迎在評論區交流使用體驗或提功能建議,我們下篇文章再見~??

      posted @ 2025-08-20 11:05  程序設計實驗室  閱讀(941)  評論(9)    收藏  舉報
      主站蜘蛛池模板: 亚洲国产超清无码专区| 成人片在线看无码不卡| 亚洲中文字幕日产无码成人片 | 午夜天堂av天堂久久久| 无码熟妇人妻av在线电影| 又大又粗又硬又爽黄毛少妇| 日韩av色一区二区三区| 久久这里只精品热免费99| 国产精品日日摸夜夜添夜夜添2021 | 亚洲男人天堂2018| 亚洲最大福利视频网| 美女又黄又免费的视频| 国内精品视频一区二区三区八戒 | av偷拍亚洲一区二区三区| 国产一区二区三区精品综合| 亚洲欧美激情在线一区| 久久久久影院色老大2020| 国产中文字幕在线精品| 内射极品少妇xxxxxhd| 亚洲国产女性内射第一区| 国产剧情福利一区二区麻豆| 热久在线免费观看视频| 国产中文字幕精品喷潮 | jizzjizz少妇亚洲水多| 少妇激情一区二区三区视频小说 | 在线精品另类自拍视频| 精品无码久久久久成人漫画| 日韩国产av一区二区三区精品| 人人爽人人爽人人片av东京热| 国产精品亚洲综合第一页| 不卡av电影在线| 日韩精品二区三区四区| 狠狠久久五月综合色和啪| 国产高清在线精品一区二区三区 | 国产mv在线天堂mv免费观看| 麻豆久久天天躁夜夜狠狠躁| 国产成人精品亚洲资源| 青草青草视频2免费观看| 伊人久久大香线蕉网av| 尹人香蕉久久99天天拍| 鄱阳县|