冰蓝科技
|
028-81705109
|
|
微信扫一扫
|

Spire.Cloud 纯前端文档控件

Spire.Presentation 10.7.7 现已正式发布。最新版本支持加载 Markdown 文件。此外,该版本还成功修复了带有复制幻灯片的文件打开报错的问题。更多详情请查阅下方内容。

新功能:

问题修复:


获取 Spire.Presentation 10.7.7,请点击:

Spire.Presentation for .NET 下载页面

PDF 是数字文档管理的普遍格式,但其固定布局特性限制了在需要灵活编辑、更新或现代工作流集成场景下的应用。相比之下,Markdown(.md)语法轻量、易读,非常适合网页发布、文档编写和版本控制。本文将介绍如何使用 Spire.PDF for Python 库在 Python 中高效实现 PDF 到 Markdown 的单文件转换与批量转换

PDF 转 Markdown 的优势

在内容创作与管理中,Markdown 相比 PDF 有显著优势:

  • 适配版本控制:可在 Git 中轻松追踪内容变更
  • 轻量易读:采用纯文本格式,语法简单直观
  • 易编辑性:无需专用软件即可快速修改内容
  • 网页集成:原生支持 GitHub、GitLab 等平台以及静态网站生成器(如 Jekyll、Hugo)

Spire.PDF for Python 提供了一套强大的解决方案,能从 PDF 中提取文本和结构信息,同时保留表格、列表、基础样式等关键格式元素。

安装 Python PDF 转换库

要在项目中使用 Spire.PDF for Python,需通过 PyPI 使用 pip 安装该库。打开终端或命令提示符,运行:

pip install Spire.PDF

若需将已安装版本升级至最新版,运行:

pip install --upgrade spire.pdf

使用 Python 将 PDF 转换为 Markdown

以下基本示例展示了如何使用 Python 将 PDF 文件转换为 Markdown(.md)文件。

from spire.pdf.common import *
from spire.pdf import *

# 创建PdfDocument类的实例
pdf = PdfDocument()

# 加载PDF文档
pdf.LoadFromFile("测试.pdf")

# 将PDF转换为Markdown文件
pdf.SaveToFile("PDF转Markdown.md", FileFormat.Markdown)
pdf.Close()

这段Python 代码的逻辑很简单:先加载 PDF 文件,再通过 SaveToFile() 方法将其转为 Markdown 格式,其中 FileFormat.Markdown 参数用于指定输出格式。

转换说明

该库从 PDF 中提取文本、图片、表格和基本格式,并将它们转换为 Markdown 语法。

  • 文本:保留段落结构与换行格式。
  • 图片:PDF 中的图片会转换为 base64 编码的 PNG 格式,并直接嵌入到 Markdown 中。
  • 表格:表格数据会转换为 Markdown 表格语法(使用竖线 | 分隔行和列)。
  • 样式:粗体、斜体等基础格式会通过 Markdown 语法保留。

转换结果:

将 PDF 文档转换为 Markdown 格式

使用 Python 批量转换多个 PDF 到 Markdown

以下 Python 代码通过循环将指定目录中的所有 PDF 文件批量转换为 Markdown 格式。

import os
from spire.pdf import *

# 配置路径
input_folder = "PDF文件/"
output_folder = "转换结果/"

# 创建输出目录
os.makedirs(output_folder, exist_ok=True)

# 处理文件夹中的所有PDF
for file_name in os.listdir(input_folder):
    if file_name.endswith(".pdf"):
        # 初始化文档
        pdf = PdfDocument()
        pdf.LoadFromFile(os.path.join(input_folder, file_name))
        
        # 生成输出路径
        md_name = os.path.splitext(file_name)[0] + ".md"
        output_path = os.path.join(output_folder, md_name)
        
        # 转换为Markdown
        pdf.SaveToFile(output_path, FileFormat.Markdown)
        pdf.Close()

转换特点:

  • 批量处理:自动转换文件夹中的所有 PDF,提高批量操作效率。
  • 一对一转换:每个 PDF 对应生成一个 Markdown 文件。
  • 顺序执行:按文件名字母顺序处理文件。
  • 资源管理:转换后立即关闭 PDF 文档,优化资源占用。

转换效果:

多个 PDF 文档批量转换为 Markdown格式

常见问题(FAQ)

问题 1:Spire.PDF for Python 是免费的吗?

:Spire.PDF 提供免费版本,但有使用限制(例如,每次转换最多 3 页)。如需无限制使用,可申请 30 天免费试用授权进行评估。

问题 2:能否将受密码保护的 PDF 文档转换为 Markdown?

:可以。使用 LoadFromFile 方法时,将密码作为第二个参数传入即可:

pdf.LoadFromFile("ProtectedFile.pdf", "your_password")

问题 3:Spire.PDF 能否将扫描版(图片型) PDF 转换为 Markdown?

:无法直接转换。该库仅提取文本类内容。对于扫描版 PDF,需先使用 OCR 工具(如 Spire.OCR for Python)将其转为可搜索的 PDF 文档。

结论

Spire.PDF for Python 简化了 PDF 到 Markdown 的转换流程,无论单文件还是批量处理均能轻松应对。其核心优势包括:

  • 简单的 API,代码量少
  • 精准保留文档结构
  • 支持批量转换
  • 跨平台兼容性

无论你是迁移文档、处理研究论文,还是搭建内容处理流水线,按照本文中的示例操作,都能高效将静态 PDF 转为灵活可编辑的 Markdown 内容,进而简化工作流程并提高协作效率。

Spire.Presentation for Python 10.7.1 更新已发布。本次更新新增支持添加 SVG 到 PPT,同时优化并模块化设计了命名空间结构。更多详细信息请阅读以下内容。

调整:

新功能:


获取Spire.Presentation for Python 10.7.1,请点击:

Spire.Presentation for Python 下载页面

在 Python 中读取条形码

现代商业系统高度依赖条形码扫描功能,从零售收银通道到仓库库存追踪皆是如此。如今,强大的编程库使得将这一核心功能集成到定制化软件解决方案中变得异常简单。其中,基于 Python 的实现方案因其多功能性和易用性而格外受欢迎。

本文将介绍如何使用 Spire.Barcode for Python在 Python 中读取条形码,该库提供了简单易用的条形码扫描API。文章涵盖库的安装配置、从图像文件及字节流中读取条形码、设置自定义识别选项等全方位内容。

目录 :

Python 条形码识别库

Spire.Barcode for Python 是一款专为 Python 应用程序设计的强大条形码生成与读取库,凭借其丰富的功能和易用的接口脱颖而出。该库支持多种条形码格式,包括:

  • 一维条形码:如 Code 128、Code 39、EAN-13 和 UPC-A。
  • 二维条形码:包括 QR 码、DataMatrix 和 PDF417。

Spire.Barcode 的核心特性:

  • 多格式支持:可从 PNG、JPG、BMP、GIF 和 TIFF 等多种图像格式中读取条形码。
  • 批量扫描:支持单张图像内多个条形码的批量识别。
  • 高精度识别:采用先进算法,确保稳定可靠的条形码检测。
  • 灵活定制:允许用户指定条形码类型并启用校验和验证,以提升识别效率。

该库不仅支持从图像和流中读取条形码,还提供丰富的自定义选项,满足多样化的应用需求。

将 Spire.Barcode 集成到Python 应用程序

要开始使用 Spire.Barcode,首先需要安装该库,您可以通过 pip 完成此操作。打开终端并运行以下命令:

pip install spire.barcode

安装库后,您需要一个许可证密钥来解锁全部功能。您可以从我们的官网获取试用许可证。获得许可证密钥后,在 Python 脚本中设置库:

from spire.barcode import *

# 应用许可证密钥以解锁全部功能
License.SetLicenseKey("your license key")

现在库已准备就绪,您就可以开始使用 Python 读取条形码了。

Python 从图像文件中读取条形码

使用 Spire.Barcode 从图像文件中读取单个条形码非常简单,具体操作如下:

from spire.barcode import *

# 应用许可证密钥以解锁全部功能
License.SetLicenseKey("your license key")

# 从图像文件读取单个条形码
result = BarcodeScanner.ScanOneFile("C:/Users/Administrator/Desktop/qr_code.png")

# 打印结果
print(result)

代码说明

  • License.SetLicenseKey :使用许可证密钥解除功能限制。
  • BarcodeScanner.ScanOneFile :从指定图像文件中读取单个条形码。
  • 输出结果 :控制台将打印识别出的条形码数据。

效果图:

Python从图像中读取单个条形码并打印扫描结果

您可能感兴趣:Python 生成及识别二维码

Python 从图像文件中读取多个条形码

若需从单个图像文件中读取多个条形码,Spire.Barcode同样能轻松实现。以下是具体示例:

from spire.barcode import *

# 应用许可证密钥以解锁全部功能
License.SetLicenseKey("your license key")

# 从文件读取多个条形码
results = BarcodeScanner.ScanFile("C:/Users/Administrator/Desktop/barcodes.jpg")

# 打印结果
print(results)

代码说明

  • BarcodeScanner.ScanFile:扫描整张图像以识别多个条形码
  • 返回结果:以列表形式存储,每个元素包含一个检测到的条形码数据

效果图:

Python从图像中读取多个条形码并打印扫描结果

Python 从图像字节流中读取条形码

除了直接从文件中读取条形码,Spire.Barcode for Python 还支持从内存中的图像字节解码条形码,这种方案特别适用于处理动态加载的图像(如来自API接口、数据库或用户上传的场景)。

以下是实现方法:

from spire.barcode import *

# 应用许可证密钥以解锁全部功能
License.SetLicenseKey("your license key")

# 读取图像文件到内存
image_path = "C:/Users/Administrator/Desktop/barcodes.jpg"
with open(image_path, "rb") as file:
    image_bytes = file.read()

# 将字节流封装为 Spire.Barcode 的 Stream 对象中
stream = Stream(image_bytes)

# 从流中读取一个条形码
# result = BarcodeScanner.ScanOneStream(stream)

# 从流中读取多个条形码
results = BarcodeScanner.ScanStream(stream)

# 打印结果
print(results)

代码说明

  • image_bytes:从图像文件(如PNG/JPG)或API/数据库等来源获取的原始二进制数据。
  • Stream类:将图像字节流转换为Spire.Barcode兼容的内存流对象。
  • ScanStream方法:支持返回检测到的所有条形码列表。

条形码识别参数配置指南

Spire.Barcode 的 BarcodeScanner 类提供多种方法用于自定义识别参数,可显著提升检测精度和效率。核心配置方法包括:

  • ScanOneFileBarCodeTypeIncludeCheckSum(fileName: str, barcodeType: BarCodeType, IncludeCheckSum: bool)
  • ScanFileBarCodeTypeIncludeCheckSum(fileName: str, barcodeType: BarCodeType, IncludeCheckSum: bool)
  • ScanOneStreamBarCodeTypeIncludeCheckSum(stream: Stream, barcodeType: BarCodeType, IncludeCheckSum: bool)
  • ScanStreamBarCodeTypeIncludeCheckSum(stream: Stream, barcodeType: BarCodeType, IncludeCheckSum: bool)

应用示例(指定条码类型 + 校验和验证)

from spire.barcode import *

# 应用许可证密钥以解锁全部功能
License.SetLicenseKey("your license key")

# 指定条形码类型(例如,EAN13)
barcode_type = BarCodeType.EAN13

# 带校验和验证的条码扫描
result = BarcodeScanner.ScanOneFileBarCodeTypeIncludeCheckSum("C:/Users/Administrator/Desktop/EAN_13.png", barcode_type, True)

# 打印结果
print(result)

代码说明

  • 条码类型(BarcodeType):精确指定待识别的条码格式,可有效减少误识别。
  • 校验和验证(IncludeCheckSum):确定在扫描过程中是否验证校验和。将其设置为 True 可以帮助捕捉数据中的错误;设置为 False 则可跳过验证,提升识别速度。

总结

本文详细介绍了如何使用 Spire.Barcode 库在 Python 中实现条形码识别功能,内容包括:

  • 环境配置与库安装
  • 单条码/批量条码的图像文件识别
  • 内存字节流的条码解析方案
  • 通过参数定制提升识别精度的技巧

掌握这些方法后,您可轻松为 Python 应用程序集成专业的条码扫描能力。

常见问题解答

Q1: 我可以使用 Spire.Barcode 读取哪些类型的条形码?

Spire.Barcode 支持多种条形码格式,包括 QR 码、UPC、EAN、Code 128、Code 39 等。

Q2: 我需要许可证才能使用 Spire.Barcode 吗?

是的,您需要许可证密钥以解锁库的全部功能。您可以该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取免费的 30 天试用许可证。

Q3: 我可以使用 Spire.Barcode 从网络摄像头读取条形码吗?

虽然 Spire.Barcode 不直接支持网络摄像头输入,但您可以从网络摄像头捕获图像,然后使用该库从这些图像中读取条形码。

Q4: 如何提高条形码扫描的准确性?

您可以通过指定条形码类型和在扫描过程中启用校验和验证来提高准确性。此外,确保图像足够清晰。

Q5: 我可以使用 Spire.Barcode for Python 生成条形码吗?

是的,Spire.Barcode 支持条形码识别和生成。有关详细说明,请查看本教程:如何使用 Python 生成条形码

Spire.PDF for Java 11.7.5现已发布,该版本支持将 PDF 转换为 Markdown,并解决了几个已知问题,包括在 PDF 转换为图像时文本出现乱码以及在将 OFD 转换为 PDF 时内容旋转的问题。有关更多详细信息,请参见以下信息。

新功能:

调整:

问题修复:


获取 Spire.PDF for Java 11.7.5 请点击:

Spire.PDF for Java 下载页面

Spire.Doc 13.7.9 现已发布。该版本新增了多项功能, 如支持创建组合图表,支持在将 Word 转换为 PDF 时设置图像压缩方法。此外还修复了一个在转换Doc到PDF时标题图像被拉伸的问题。详情如下。

新功能:

问题修复:


获取Spire.Doc 13.7.9,请点击:

Spire.Doc for .NET 下载页面

Spire.XLS for Java 15.7.7 现已正式发布。最新版本支持 MarkerDesigner 使用 Array 数据。此外,该版本还成功修复了一些已知问题,例如 Excel 转 PDF,linux 环境下字体不正确的问题。更多详情请查阅下面的内容。

新功能:

问题修复:


获取 Spire.XLS for Java 15.7.7,请点击:

Spire.XLS for Java 下载页面

Spire.XLS 15.7.8 现已正式发布。该版本新增了 LoadFromMarkdown() 方法,可加载 Markdown 格式文档。同时修复了多个问题,包括 Excel 转 PDF 时的复选框显示错误、AGGREGATE 公式计算异常、文本换行和分页错误等。详情如下:

新功能:

问题修复:


获取 Spire.XLS 15.7.8 请点击:

Spire.XLS for .NET 下载页面

Spire.Presentation for Java 10.7.1 现已发布,该版本修复了拆分PPT文档时程序抛错的问题。具体信息如下。

问题修复:


获取 Spire.Presentation for Java 10.7.1 请点击:

Spire.Presentation for Java 下载页面

Spire.PDF for C++ 11.7.0 现已正式发布。该版本升级依赖的SkiaSharp版本并修复了两个在转换OFD到PDF和获取字体属性时出现的问题。详情请查阅以下内容。

调整:

问题修复:


获取 Spire.PDF for C++ 11.7.0 请点击:

Spire.PDF for C++ 下载页面