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

如何使用Python读取PDF收据中的商品编码?

提取PDF收据中的数字商品编码方案
  • 第一步:提取PDF文本内容
    优先直接从PDF提取文本,比转Word/TXT更靠谱。推荐用Python的pdfplumber(能更好保留文本结构)或PyMuPDF(处理速度快),示例代码:

    import pdfplumber
    
    def extract_pdf_text(pdf_path):
        text = ""
        with pdfplumber.open(pdf_path) as pdf:
            for page in pdf.pages:
                text += page.extract_text() or ""
        return text
    

    如果是扫描生成的PDF(本质是图片),转Word/TXT没用,得用OCR工具,比如Tesseract配合pytesseract:

    import pytesseract
    from pdf2image import convert_from_path
    
    def ocr_scanned_pdf(pdf_path):
        pages = convert_from_path(pdf_path)
        text = ""
        for page in pages:
            text += pytesseract.image_to_string(page, lang='chi_sim+eng')  # 根据收据语言调整参数
        return text
    
  • 第二步:用正则匹配数字编码
    针对纯数字编码,先假设编码是6-12位连续数字(可根据实际长度调整),用正则批量提取:

    import re
    
    def extract_product_codes(text):
        # 匹配6到12位连续数字,可修改数字范围适配你的编码
        pattern = r'\b\d{6,12}\b'
        codes = re.findall(pattern, text)
        # 去重避免重复提取
        return list(set(codes))
    

    如果编码有特定规律(比如固定开头数字),可以调整正则,比如r'\b88\d{8}\b'匹配以88开头的10位编码。

  • 第三步:筛选有效编码
    文本里可能混有金额、日期等无关数字,可通过以下方式过滤:

    • 找“商品编码”“货号”等关键词附近的数字;
    • 用已知的编码范围(比如企业规定的编码区间)过滤;
    • 手动校验少量结果,调整正则规则。
  • 批量处理建议
    若要处理大量PDF,可写循环遍历文件夹内所有文件,自动提取编码并导出到Excel/CSV文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 16:35:34