将条形码直接嵌入 PDF 文件是库存跟踪、票务和安全文档工作流的常见需求。Aspose.PDF for Python via .NET 提供了强大的 SDK,简化了在 Python 中向 PDF 添加条形码的过程。在本教程中,您将学习如何生成条形码图像、将其放置在现有 PDF 上以及自定义其外观。完成后,您将能够自信地以编程方式向单个或多个 PDF 文档添加条形码。
如何在 Python 中向 PDF 添加条形码 - 步骤指南
- 安装所需的包:使用 pip 安装 Aspose.PDF 和 Aspose.BarCode。
pip install aspose-pdf pip install aspose-barcode-for-python-via-net - 生成条形码图像:使用 Aspose.BarCode 创建条形码。生成的图像可以保存到内存流中。
from aspose.barcode import generation
Generate the barcode image
generator = generation.BarcodeGenerator(generation.EncodeTypes.CODE39_STANDARD, “1234567”) generator.save(barcode_image, generation.BarCodeImageFormat.PNG)
<!--[CODE_SNIPPET_END]-->
3. **创建目标 PDF 文档**:使用 Aspose.PDF 打开现有的 PDF。
<!--[CODE_SNIPPET_START]-->
```python
import aspose.pdf as ap
# Create a new PDF document and add a page
document = ap.Document("input.pdf")
page = document.pages.add()
page.set_page_size(595, 842)
- 将条形码图像插入到所需页面:使用 ImageStamp 放置条形码。根据需要调整位置和大小。
# Add the barcode image at the specified coordinates page.add_image(barcode_image, ap.Rectangle(100, 650, 300, 750, True)) - 保存更新后的 PDF(或循环进行批量处理):持久化更改,或遍历多个 PDF,以在 Python 中批量向 PDF 添加条形码。
document.save(output_pdf)
使用 Python 在 PDF 中嵌入条形码 - 完整代码示例
以下示例演示了一个完整的工作流,该工作流生成条形码,将其嵌入现有 PDF 中,并保存结果。
import aspose.pdf as ap
from aspose.barcode import generation
def add_barcode_to_new_pdf(output_pdf, barcode_image):
# Generate the barcode image
generator = generation.BarcodeGenerator(generation.EncodeTypes.CODE39_STANDARD, "1234567")
generator.save(barcode_image, generation.BarCodeImageFormat.PNG)
# Create a new PDF document and add a page
document = ap.Document()
page = document.pages.add()
page.set_page_size(595, 842)
# Add the barcode image at the specified coordinates
page.add_image(barcode_image, ap.Rectangle(100, 650, 300, 750, True))
# Save the resulting PDF document
document.save(output_pdf)
if __name__ == "__main__":
add_barcode_to_new_pdf("AddBarcodeToNewPDF.pdf", "barcode.png")
注意: 此代码示例演示了核心功能。在将其用于项目之前,请确保更新文件路径以匹配实际文件位置,验证所有必需的依赖项已正确安装,并在开发环境中进行彻底测试。如果遇到任何问题,请参阅官方文档或联系支持团队获取帮助。
Aspose.PDF for Python via .NET - 先决条件和设置
要开始使用 SDK,请确保已安装 Python 3.6+ 和 .NET 运行时。然后通过 pip 安装包:
pip install aspose-pdf aspose-barcode
您也可以从下载页面下载最新的二进制文件。评估时不需要额外的授权代码,但在生产环境中需要有效的许可证(请参阅临时许可证页面和定价页面)。
使用 Python 从 PDF 文档读取条形码
我们可以使用 resources.images 集合(属于 page)来识别 PDF 文档任意页面上嵌入的条形码图像。它允许从 PDF 中提取图像,然后我们将从提取的图像中读取条形码信息。我们可以按照下面给出的步骤从 PDF 文档中读取条形码:
- 首先,使用 Document 类加载输入的 PDF 文档。
- 接下来,选择目标页面并获取其 resources.images 集合。
- 然后,在循环中将每个嵌入的图像保存到文件。
- 接着,使用图像路径和 DecodeType 作为参数创建 BarCodeReader 类的实例。
- 之后,调用 read_bar_codes() 方法获取识别结果。
- 最后,遍历结果并显示条形码信息。
以下代码示例演示了如何使用 Python 从 PDF 文档中读取条形码图像。
import aspose.pdf as ap
from aspose.barcode import recognition
from io import FileIO
def read_barcode_from_pdf(input_pdf, extracted_image):
# Load the input PDF document
document = ap.Document(input_pdf)
page = document.pages[1]
# Extract the first image from the page resources
x_image = page.resources.images[1]
with FileIO(extracted_image, "wb") as image_stream:
x_image.save(image_stream)
# Read the barcode from the extracted image
reader = recognition.BarCodeReader(extracted_image, recognition.DecodeType.CODE39_STANDARD)
for result in reader.read_bar_codes():
print(f"Codetext found: {result.code_text}")
print(f"Symbology: {result.code_type_name}")
if __name__ == "__main__":
read_barcode_from_pdf("AddBarcodeToExistingPDF.pdf", "extracted_barcode.png")
Codetext found: 1234567
Symbology: Code39Standard
结论
在 Python 中向 PDF 添加条形码变得非常简单,只需使用 Aspose.PDF for Python via .NET。SDK 强大的 PDF 操作功能与 Aspose.BarCode 的条形码生成相结合,使您只需几行代码即可实现完整的向 PDF 添加条形码工作流。无论是更新单个文档,还是在 Python 中批量向大量 PDF 添加条形码,库都提供您所需的性能和灵活性。请记得为生产环境获取合适的许可证;您可以在定价页面查看实惠的定价选项,或从临时许可证页面获取临时评估许可证。
FAQs
如何在 Python 中向现有 PDF 添加条形码?
使用 Aspose.PDF 加载 PDF,使用 Aspose.BarCode 生成条形码,并通过add_image()将其嵌入。完整过程在上面的代码示例中有所展示。推荐的在 Python 中批量向 PDF 添加条形码的方法是什么?
循环遍历您的 PDF 集合,复用同一个BarcodeGenerator,并使用流进行处理。遵循“性能考虑”章节中的性能提示,以保持低内存使用。是否有办法以编程方式自定义条形码的大小和位置?
当然。调整barcode的width、height、x、y和rotation属性。
