PDF-ის PDF ფაილების სტრუქტურირებულ XML გარდაქმნა ხშირად საჭიროა, როდესაც საჭიროა ბარკოდის მონაცემების გამოტანა შემდეგი დამუშავებისთვის. Aspose.BarCode Cloud SDK for Python ძლიერი API-ს სთავაზობს, რომელიც Python-ში PDF-ის XML-ში გარდაქმნის პროცესი ადვილია და მასშტაბირებადია. ეს გიდი გაგიჩნებთ დაყენების, სრულ სამუშაო მაგალითის, შესრულების საკითხების და შეცდომის დამუშავების შესახებ, რათა შეძლოთ საიმედო მონაცემების გამოტანის ინტეგრირება თქვენს აპლიკაციებში.
სრულად კოდის მაგალითი: PDF-დან XML-ზე გადაყვანა Python-ში
შემდეგი სკრიპტი აჩვენებს, როგორ გავაგზავნოთ 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-ის კოდის დაწერის გარეშე, Aspose.BarCode Cloud-ის REST საბოლოო წერტილებზე პირდაპირ გამოძახებით.
- წვდომის ტოკენის მიღება - შეცვალეთ ადგილმჭერები თქვენი ავტორიზაციის დეტალებით.
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-ად გადაყვანის კოდის გაგება Python-ში
ქვემოთ მოცემულია სკრიპტის ძირითადი განყოფილებების მოკლე მიმოხილვა.
- კონფიგურაციის დაყენება - ქმნის
Configurationობიექტს და ჩასვამს თქვენსclient_idდაclient_secret-ს.
config = Configuration()
config.api_key['client_id'] = client_id
config.api_key['client_secret'] = client_secret
- BarcodeApi-ის ინიციალიზაცია - ქმნის 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 ხის ჩაწერა
output.xmlფაილში UTF‑8 კოდირებით და XML დეკლარაციით.
xml_tree.write(output_xml_path, encoding="utf-8", xml_declaration=True)
ეს ნაბიჯები ერთად უზრუნველყოფენ სწრაფ და საიმედო PDF-დან XML-მდე კონვერტაციას Python-ში, რაც მოგცემთ სრულ კონტროლს შეცდომების დამუშავებაზე და შესრულების ოპტიმიზაციაზე.
გარემოს მომზადება
ჯერ, დააინსტალირეთ SDK pip-ის საშუალებით და დარწმუნდით, რომ გაქვთ Python 3.7+
pip install aspose-barcode-cloud
შემდეგ, გადმოწერეთ უახლესი პაკეტი ოფიციალური გამოშვების გვერდიდან: გადმოწერეთ Aspose.BarCode Cloud SDK for Python.
დარწმუნდით, რომ თქვენი გარემოს ცვლადები ASPOSE_CLIENT_ID და ASPOSE_CLIENT_SECRET დაყენებულია, ან შეცვალეთ სკრიპტში არსებული ადგილმჭერები თქვენი რეალური ავტორიზაციის დეტალებით.
მორგების არჩევანი და პარამეტრები
მაგალითი ნაგულისხმევი პარამეტრები იყენებს, თუმცა SDK-ს რამდენიმე კონფიგურირებადი არჩევანი გთავაზობთ:
- მორგებული ბაზის URL - კერძო ღრუბლოვანი განთავსებებისთვის სასარგებლოა.
# config.host = "https://api.yourdomain.com"
- მოლოდინის დროის პარამეტრები - მორგეთ HTTP-ის მოლოდინის დრო დიდი PDF-ებისთვის.
config.timeout = 120 # seconds
- Error Handling - გადაჭერეთ
ApiException, რათა მიიღოთ HTTP სტატუსის კოდები და შეცდომის შეტყობინებები, რაც იძლევა მძლავრ გადატვირთვის ლოგიკას.
except ApiException as e:
print(f"API call failed: {e}")
მიმართეთ API-ის დოკუმენტაციას სრულ პარამეტრების სიას.
დასკვნა
PDF‑ის XML-ში გარდაქმნა Python-ში ხდება მარტივი პროცესი, როდესაც იყენებთ Aspose.BarCode Cloud SDK for Python-ს. ზემოთ აღნიშნული ნაბიჯების—მომხმარებლის უფლებამოსილების დაყენება, მიწოდებული კოდის გაშვება და შესრულების‑მიზანზე ორიენტირებული პარამეტრების გამოყენება—მიერ შეგიძლიათ ბარკოდების მონაცემები PDF‑ებიდან გამოიღოთ და შექმნათ სუფთა XML‑გამოტანა, რომელიც მზადაა ქვედა სისტემებისთვის. SDK კომერციული პროდუქტია; ფასის დეტალები ხელმისაწვდომია პროდუქტის გვერდზე, ხოლო დროებით ლიცენზია შეფასებისთვის შეგიძლიათ მიიღოთ დროებითი ლიცენზიის გვერდიდან. დაიწყეთ ინტეგრაცია დღესვე და აჩქარეთ თქვენი მონაცემების‑გამოყოფის სამუშაო ნაკადები.
ხშირად დასმული კითხვები
როგორ გავაკეთო PDF-დან XML-ში გადაყვანა Python-ში თავსარად სერვერზე?
ბიბლიოთეკა სრულად მუშაობს API მოთხოვნებით, ამიტომ შეგიძლიათ სკრიპტი გაუშვათ ნებისმიერი სერვერზე გრაფიკული ინტერფეისის გარეშე. უბრალოდ დარწმუნდით, რომ თქვენი Aspose credentials ცვლადები დაყენებულია.
რა არის რეკომენდებული გზა PDF-დან XML-ში გადაყვანის შესრულების გაუმჯობესებისთვის Python-ში?
Reuse the BarcodeApi instance, increase the HTTP timeout for large files, and enable response compression. For massive PDFs, consider processing pages in batches.
როგორ მუშაობს SDK-ის შეცდომების დამუშავება PDF-დან XML-ით გარდაქმნისას?
ყველა API ურთიერთობა შეცდომის შემთხვევაში აწენებს ApiException. e.status და e.reason-ის შემოწმებით შეგიძლიათ გადაწყვიტოთ, უნდა გაუშვათ თავიდან, უნდა ჩაიწეროთ ლოგში, თუ უნდა შეწყვეტოთ. დეტალური შეცდომის კოდები ჩამოთვლილია დოკუმენტაციაში.
არის შედარება Aspose.BarCode-ისა და სხვა PDF‑დან XML-ში კონვერტაციის ბიბლიოთეკებს Python-ში?
Aspose.BarCode უზრუნველყოფს ჩაშენებულ ბარკოდის ამოცნობას და პირდაპირ XML გენერაციას, რაც ბევრი ზოგადი PDF პარსერი არ აქვს. მისი ღრუბლოვანი არქიტექტურა ასევე იძლევა მასშტაბირებადობის უპირატესობას ადგილობრივ ბიბლიოთეკებზე.