تبدیل فایلهای PDF به XML ساختار یافته یک نیاز مکرر است زمانی که لازم است دادههای بارکد را برای پردازشهای بعدی استخراج کنید. Aspose.BarCode Cloud SDK for Python یک API قدرتمند ارائه میدهد که تبدیل PDF به XML را در پایتون بهصورت ساده و مقیاسپذیر انجام میدهد. این راهنما شما را از طریق تنظیمات، یک مثال کامل کاری، ملاحظات عملکرد و مدیریت خطاها راهنمایی میکند تا بتوانید استخراج دادههای قابل اعتماد را در برنامههای خود یکپارچه کنید.
مثال کامل کد: تبدیل PDF به XML در پایتون
اسکریپت زیر نشان میدهد که چگونه یک PDF را به Aspose.BarCode Cloud ارسال کنید، بارکدها را شناسایی کنید و نتایج را در یک فایل XML بنویسید.
import os
import xml.etree.ElementTree as ET
import asposebarcodecloud
from asposebarcodecloud import Configuration, BarcodeApi
from asposebarcodecloud.rest import ApiException
# ----------------------------------------------------------------------
# Configuration – replace with your own Aspose Cloud credentials
# ----------------------------------------------------------------------
client_id = os.getenv("ASPOSE_CLIENT_ID", "YOUR_CLIENT_ID")
client_secret = os.getenv("ASPOSE_CLIENT_SECRET", "YOUR_CLIENT_SECRET")
config = Configuration()
config.api_key['client_id'] = client_id
config.api_key['client_secret'] = client_secret
# Optional: set a custom base URL if needed
# config.host = "https://api.aspose.cloud"
barcode_api = BarcodeApi(asposebarcodecloud.ApiClient(config))
# ----------------------------------------------------------------------
# Input / Output files
# ----------------------------------------------------------------------
input_pdf_path = "input.pdf"
output_xml_path = "output.xml"
def recognize_barcodes_from_pdf(pdf_path):
"""Send PDF to Aspose.BarCode Cloud and return recognized barcodes."""
with open(pdf_path, "rb") as pdf_file:
try:
# The API automatically detects the file type; we explicitly set it to PDF.
# The response is a list of RecognizedBarcode objects.
result = barcode_api.post_barcode_recognize_from_url_or_content(
file=pdf_file,
type="pdf"
)
return result.barcodes if result else []
except ApiException as e:
print(f"API call failed: {e}")
return []
def build_xml_from_barcodes(barcodes):
"""Create an XML document from a list of RecognizedBarcode objects."""
root = ET.Element("Barcodes")
for barcode in barcodes:
barcode_el = ET.SubElement(root, "Barcode")
ET.SubElement(barcode_el, "CodeText").text = barcode.code_text or ""
ET.SubElement(barcode_el, "Type").text = barcode.type or ""
# Region information (optional)
if barcode.region:
region_el = ET.SubElement(barcode_el, "Region")
ET.SubElement(region_el, "X").text = str(barcode.region.x)
ET.SubElement(region_el, "Y").text = str(barcode.region.y)
ET.SubElement(region_el, "Width").text = str(barcode.region.width)
ET.SubElement(region_el, "Height").text = str(barcode.region.height)
return ET.ElementTree(root)
def main():
barcodes = recognize_barcodes_from_pdf(input_pdf_path)
if not barcodes:
print("No barcodes were detected.")
return
xml_tree = build_xml_from_barcodes(barcodes)
xml_tree.write(output_xml_path, encoding="utf-8", xml_declaration=True)
print(f"XML conversion completed. Output saved to '{output_xml_path}'.")
if __name__ == "__main__":
main()
توجه: این مثال کد عملکرد اصلی را نشان میدهد. قبل از استفاده از آن در پروژه خود، اطمینان حاصل کنید که مسیرهای فایل و مقادیر پیکربندی را بهگونهای بهروز کنید که با محیط واقعی شما مطابقت داشته باشد، بررسی کنید که تمام وابستگیهای مورد نیاز بهدرستی نصب شدهاند و بهطور کامل در محیط توسعه خود تست کنید. اگر با مشکلی مواجه شدید، لطفاً به مستندات رسمی مراجعه کنید یا برای دریافت کمک با تیم پشتیبانی تماس بگیرید.
اجرای تبدیل PDF به XML با cURL و REST API
میتوانید بدون نوشتن کد Python، با فراخوانی مستقیم نقاط انتهایی REST سرویس Aspose.BarCode Cloud، همان نتیجه را بدست آورید.
- دریافت توکن دسترسی - مقادیر جایگزین را با اعتبارهای خود جایگزین کنید.
curl -X POST "https://api.aspose.cloud/connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
- بارگذاری PDF - از توکن مرحلهٔ قبلی استفاده کنید.
curl -X PUT "https://api.aspose.cloud/v3.0/barcode/recognize/pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/pdf" \
--data-binary @input.pdf \
-o response.json
- استخراج بارکدها و تولید XML - پاسخ شامل دادههای بارکد است که میتوانید به یک سازنده XML منتقل کنید یا مستقیماً ذخیره کنید.
curl -X POST "https://api.aspose.cloud/v3.0/barcode/recognize/fromurlorcontent" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"type":"pdf","file":"input.pdf"}' \
-o barcodes.json
- فایل XML را دانلود کنید (اگر API را برای بازگرداندن XML پیکربندی کردهاید).
curl -X GET "https://api.aspose.cloud/v3.0/barcode/recognize/xml/output.xml" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o output.xml
برای دریافت فهرست کامل پارامترها و فرمتهای پاسخ، به مستندات رسمی API مراجعه کنید.
درک کد تبدیل PDF به XML در پایتون
در زیر یک مرور مختصر از بخشهای کلیدی اسکریپت آورده شده است.
- راهاندازی پیکربندی - یک شیء
Configurationایجاد میکند وclient_idوclient_secretشما را تزریق میکند.
config = Configuration()
config.api_key['client_id'] = client_id
config.api_key['client_secret'] = client_secret
- BarcodeApi Initialization - یک کلاینت API میسازد که با سرویس ابری ارتباط برقرار میکند.
barcode_api = BarcodeApi(asposebarcodecloud.ApiClient(config))
- ارسال PDF - متد
post_barcode_recognize_from_url_or_contentبایتهای PDF را ارسال میکند و نوع فایل را مشخص مینماید.
result = barcode_api.post_barcode_recognize_from_url_or_content(
file=pdf_file,
type="pdf"
)
- ساخت سند XML - بر روی هر شیء
RecognizedBarcodeتکرار میکند و یک درخت XML ساختار یافته با استفاده ازxml.etree.ElementTreeایجاد مینماید.
root = ET.Element("Barcodes")
for barcode in barcodes:
barcode_el = ET.SubElement(root, "Barcode")
ET.SubElement(barcode_el, "CodeText").text = barcode.code_text or ""
ET.SubElement(barcode_el, "Type").text = barcode.type or ""
- ذخیره خروجی - درخت XML را با رمزگذاری UTF‑8 و اعلان XML به
output.xmlمینویسد.
xml_tree.write(output_xml_path, encoding="utf-8", xml_declaration=True)
این مراحل با هم تبدیل سریع و قابل اعتماد PDF به XML در پایتون را امکانپذیر میسازند، در حالی که کنترل کامل بر مدیریت خطاها و بهینهسازی عملکرد را به شما میدهند.
آمادهسازی محیط
اول، SDK را از طریق pip نصب کنید و اطمینان حاصل کنید که Python 3.7+ را دارید.
pip install aspose-barcode-cloud
در ادامه، آخرین بسته را از صفحه رسمی انتشار دانلود کنید: Download Aspose.BarCode Cloud SDK for Python.
اطمینان حاصل کنید که متغیرهای محیطی ASPOSE_CLIENT_ID و ASPOSE_CLIENT_SECRET تنظیم شدهاند، یا جایگزینگرهای موجود در اسکریپت را با اعتبارهای واقعی خود جایگزین کنید.
گزینهها و تنظیمات تنظیم دقیق
در حالی که مثال از تنظیمات پیشفرض استفاده میکند، SDK چندین گزینه قابل تنظیم ارائه میدهد:
- آدرس پایه سفارشی - برای استقرارهای ابر خصوصی مفید است.
# config.host = "https://api.yourdomain.com"
- تنظیمات زمانانتظار - زمانانتظار HTTP را برای PDFهای بزرگ تنظیم کنید.
config.timeout = 120 # seconds
- مدیریت خطا - استثنای
ApiExceptionرا دریافت کنید تا کدهای وضعیت HTTP و پیامهای خطا را بازیابی کنید و منطق تلاش مجدد قوی را فعال کنید.
except ApiException as e:
print(f"API call failed: {e}")
برای دریافت فهرست کامل پارامترها به مرجع API مراجعه کنید.
Conclusion
تبدیل PDF به XML در پایتون زمانی که از Aspose.BarCode Cloud SDK for Python استفاده میکنید، به فرآیندی ساده تبدیل میشود. با دنبال کردن مراحل بالا، تنظیم اعتبارنامهها، اجرای کد ارائهشده و اعمال گزینههای متمرکز بر عملکرد، میتوانید دادههای بارکد را از PDFها استخراج کرده و خروجی XML تمیزی تولید کنید که برای سیستمهای بعدی آماده است. این SDK یک محصول تجاری است؛ جزئیات قیمتگذاری در صفحه محصول موجود است و میتوانید یک لایسنس موقت برای ارزیابی از temporary license page دریافت کنید. امروز شروع به ادغام کنید و جریانهای کاری استخراج داده خود را تسریع کنید.
FAQs
چگونه میتوانم تبدیل PDF به XML را در پایتون روی سرور بدون رابط گرافیکی انجام دهم؟
کتابخانه بهصورت کامل از طریق تماسهای API کار میکند، بنابراین میتوانید اسکریپت را روی هر سروری بدون رابط گرافیکی اجرا کنید. فقط اطمینان حاصل کنید که متغیرهای محیطی برای اعتبارنامههای Aspose شما تنظیم شدهاند.
به چه روش پیشنهادی میتوان عملکرد تبدیل PDF به XML را در پایتون بهبود داد؟
از نمونه BarcodeApi مجدداً استفاده کنید، زمانسنجی HTTP را برای فایلهای بزرگ افزایش دهید، و فشردهسازی پاسخ را فعال کنید. برای PDFهای بزرگ، پردازش صفحات را به صورت دستهای در نظر بگیرید.
چگونه SDK خطاها را در حین تبدیل PDF به XML مدیریت میکند؟
تمام تعاملات API در صورت شکست ApiException را پرتاب میکنند. مقدار e.status و e.reason را بررسی کنید تا تصمیم بگیرید آیا دوباره تلاش کنید، لاگ کنید یا متوقف شوید. کدهای خطای دقیق در مستندات فهرست شدهاند.
آیا مقایسهای بین Aspose.BarCode و سایر کتابخانههای تبدیل PDF به XML در پایتون وجود دارد؟
Aspose.BarCode ارائه میدهد تشخیص بارکد داخلی و تولید مستقیم XML، که بسیاری از تجزیهکنندههای عمومی PDF ندارند. معماری مبتنی بر ابر آن همچنین مزایای مقیاسپذیری نسبت به کتابخانههای فقط محلی را فراهم میکند.