You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python或ASP.NET Core中提取带格式布局的PDF文本

保留PDF文本格式的提取方案推荐

我在Python和ASP.NET Core中使用iTextSharp、PDFSharp、PyPDF2等库提取PDF文本时,能成功获取内容,但无法保留原有的间距、对齐等格式布局。试过PyMuPDF和Camelot,结果未达预期,现寻求可准确提取PDF文本并保留原格式布局的方案、库或代码片段,确保提取的文本还原PDF的间距、对齐及整体视觉结构。

当前提取结果

Invoice#
Invoice Date
Terms
Due Date: INV-000003
: 18 May 2023
: Due on
Receipt
: 18 May 2023
Bill To Ship To
Ms. Mary D. Dunton 1324 Hinkle Lake Road
1324 Hinkle Lake Road Needham
Needham 02192 Maine
02192 Maine
# Item & Description Qty Rate Amount
1 Camera
DSLR camera with
advanced shooting
capabilities1 $899.00 $899.00
2 Fitness Tracker
Activity tracker with heart
rate monitoring1 $129.00 $129.00
3 Laptop
Lightweight laptop with a
powerful processor1 $1,199.00 $1,199.00
$2,227.00
5.00%
$2,338.35
Thanks for shopping with us. $2,338.35Zylker Electronics Hub
14B, Northern Street Greater South Avenue
New York New York 10001 U.S.A
Sub Total
Balance DueINVOICE
TotalTax Rate

预期格式结果

Zylker Electronics Hub                                                                                 
14B, Northern Street Greater South Avenue                                                               
New York New York 10001 U.S.A                                                     INVOICE              
Invoice#                                    : INV-000003                                               
Invoice Date                                : 18 May 2023                                              
Terms                                       : Due on                                                   
Due Date                                    Receipt                                                    
                                            : 18 May 2023                                              
Bill To                                                     Ship To                                    
Ms. Mary D. Dunton                                          1324 Hinkle Lake Road                      
1324 Hinkle Lake Road                                       Needham                                    
Needham                                                     02192 Maine                                
02192 Maine                                                                                            
#             Item & Description                                           Qty          Rate             
1             Camera                                                         1       $899.00    
              DSLR camera with                                                                          
              advanced shooting                                                                         
              capabilities                                                                             
2             Fitness Tracker                                                 1      $129.00    
              Activity tracker with heart                                                              
              rate monitoring                                                                           
                                                                                                       
3              Laptop                                                         1     $1,199.00 
               Lightweight laptop with a                                                               
               powerful processor                                                                       
                                                                                                       
                                                                                                       
                                                                Sub Total    $2,338.35
                                                                Tax Rate        5.00%                   
                                                                Total         $2,338.35            
Thanks for shopping with us.      

推荐方案

Python 环境

  • PDFplumber:精准获取文本的坐标、字体、间距等布局信息,通过layout=True参数可直接还原大部分排版结构,尤其适合表格类文档。
    代码片段:
    import pdfplumber
    
    with pdfplumber.open("invoice.pdf") as pdf:
        page = pdf.pages[0]
        # 保留布局提取文本
        formatted_text = page.extract_text(layout=True)
        print(formatted_text)
    
  • Tabula-py:针对表格密集的PDF(如发票),可识别表格结构并输出带格式的文本或DataFrame,能较好保留列对齐和间距。

ASP.NET Core 环境

  • PdfPig:可获取每个字符/单词的精确坐标信息,通过坐标计算实现自定义排版,还原原文档的对齐和间距。
    代码片段:
    using UglyToad.PdfPig;
    using UglyToad.PdfPig.Content;
    
    using (var document = PdfDocument.Open("invoice.pdf"))
    {
        var page = document.GetPage(1);
        // 按行分组并根据X坐标排序,模拟原对齐
        var lines = page.GetWords().GroupBy(w => w.BoundingBox.Top);
        foreach (var line in lines.OrderByDescending(l => l.Key))
        {
            var sortedWords = line.OrderBy(w => w.BoundingBox.Left);
            Console.WriteLine(string.Join(" ", sortedWords.Select(w => w.Text)));
        }
    }
    
  • iText 7:替代旧版iTextSharp,提供更强大的文本提取API,可自定义LocationTextExtractionStrategy来保留布局格式。

补充说明

如果PDF是扫描件,需先通过Tesseract完成OCR识别文本,再结合上述库处理格式还原。

内容的提问来源于stack exchange,提问作者Adnan ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 11:17:42