PDF dosyalarını yapılandırılmış XML formatına dönüştürmek, barkod verilerini sonraki işleme için çıkarmanız gerektiğinde sıkça karşılaşılan bir gereksinimdir. Aspose.BarCode Cloud SDK for Python güçlü bir API sağlar ve Python’da PDF’den XML’e dönüşümü basit ve ölçeklenebilir hâle getirir. Bu kılavuz, kurulum, tam çalışan bir örnek, performans hususları ve hata yönetimi konularında size yol gösterir, böylece uygulamalarınıza güvenilir veri çıkarımını entegre edebilirsiniz.

Tam Kod Örneği: Python’da PDF’den XML’ye Dönüştürme

Aşağıdaki betik, bir PDF’yi Aspose.BarCode Cloud’a gönderme, barkodları tanıma ve sonuçları bir XML dosyasına yazma işlemlerini göstermektedir.

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()

Not: Bu kod örneği temel işlevselliği gösterir. Projenizde kullanmadan önce, dosya yollarını ve yapılandırma değerlerini gerçek ortamınıza uygun şekilde güncellediğinizden, tüm gerekli bağımlılıkların doğru şekilde yüklendiğinden emin olun ve geliştirme ortamınızda kapsamlı bir şekilde test edin. Herhangi bir sorunla karşılaşırsanız, lütfen resmi dokümantasyona bakın veya destek ekibi ile iletişime geçin.

cURL ve REST API ile PDF’den XML’e Dönüşümün Çalıştırılması

Python kodu yazmadan aynı sonucu, Aspose.BarCode Cloud REST uç noktalarını doğrudan çağırarak elde edebilirsiniz.

  1. Erişim belirteci alın - yer tutucuları kimlik bilgilerinizle değiştirin.
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"
  1. PDF’yi Yükleyin - önceki adımdan alınan token’ı kullanın.
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
  1. Barkodları çıkar ve XML oluştur - yanıt, bir XML oluşturucuya yönlendirebileceğiniz veya doğrudan kaydedebileceğiniz barkod verilerini içerir.
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
  1. XML dosyasını indirin (API’yi XML döndürecek şekilde yapılandırdıysanız).
curl -X GET "https://api.aspose.cloud/v3.0/barcode/recognize/xml/output.xml" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -o output.xml

Tam bir parametre ve yanıt formatı listesi için, resmi API belgelerine bakın.

Python’da PDF’den XML Dönüşüm Kodunu Anlamak

Aşağıda, betiğin ana bölümlerinin özlü bir yürütmesi bulunmaktadır.

  1. Yapılandırma Ayarı - Configuration nesnesi oluşturur ve client_id ve client_secret değerlerinizi enjekte eder.
config = Configuration()
config.api_key['client_id'] = client_id
config.api_key['client_secret'] = client_secret
  1. BarcodeApi Başlatma - bulut hizmetiyle iletişim kuracak API istemcisini oluşturur.
barcode_api = BarcodeApi(asposebarcodecloud.ApiClient(config))
  1. PDF’yi Gönderme - post_barcode_recognize_from_url_or_content yöntemi PDF baytlarını gönderir ve dosya tipini belirtir.
result = barcode_api.post_barcode_recognize_from_url_or_content(
    file=pdf_file,
    type="pdf"
)
  1. XML Belgesini Oluşturma - her RecognizedBarcode nesnesi üzerinde yineleyerek xml.etree.ElementTree kullanarak yapılandırılmış bir XML ağacı oluşturur.
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 ""
  1. Saving the Output - XML ağacını output.xml dosyasına UTF‑8 kodlaması ve bir XML bildirimiyle yazar.
xml_tree.write(output_xml_path, encoding="utf-8", xml_declaration=True)

Bu adımlar birlikte, Python’da hızlı ve güvenilir PDF’den XML’ye dönüşümünü sağlar ve hata yönetimi ile performans ayarlamaları üzerinde tam kontrol sunar.

Ortamı Hazırlama

İlk olarak, SDK’yı pip aracılığıyla kurun ve Python 3.7+ sürümüne sahip olduğunuzdan emin olun.

pip install aspose-barcode-cloud

Sonra, resmi sürüm sayfasından en son paketi indirin: Download Aspose.BarCode Cloud SDK for Python.
Ortam değişkenleriniz ASPOSE_CLIENT_ID ve ASPOSE_CLIENT_SECRET‘in ayarlandığından emin olun veya betikteki yer tutucuları gerçek kimlik bilgilerinizle değiştirin.

İnce Ayar Seçenekleri ve Ayarlar

Örnek varsayılan ayarları kullansa da, SDK birkaç yapılandırılabilir seçenek sunar:

  • Custom Base URL - özel bulut dağıtımları için kullanışlı.
# config.host = "https://api.yourdomain.com"
  • Zaman Aşımı Ayarları - büyük PDF’ler için HTTP zaman aşımını ayarlayın.
config.timeout = 120  # seconds
  • Hata İşleme - ApiException yakalayarak HTTP durum kodlarını ve hata mesajlarını alın, sağlam bir yeniden deneme mantığı sağlar.
except ApiException as e:
    print(f"API call failed: {e}")

Tam bir parametre listesi için API referansına bakın.

Sonuç

Python’da PDF’den XML’e dönüşüm, Aspose.BarCode Cloud SDK for Python’ı kullandığınızda sorunsuz bir süreç haline gelir. Yukarıdaki adımları izleyerek kimlik bilgilerini ayarlayabilir, sağlanan kodu çalıştırabilir ve performansa odaklı seçenekleri uygulayarak PDF’lerden barkod verilerini çıkarabilir ve sonraki sistemler için hazır temiz XML çıktısı oluşturabilirsiniz. SDK ticari bir üründür; fiyatlandırma detayları ürün sayfasında mevcuttur ve değerlendirme için geçici bir lisans alabilirsiniz geçici lisans sayfası. Bugün entegrasyona başlayın ve veri çıkarma iş akışlarınızı hızlandırın.

SSS

Python’da başsız bir sunucuda PDF’den XML’e dönüşümü nasıl gerçekleştiririm?
Kütüphane tamamen API çağrıları üzerinden çalışır, bu nedenle betiği grafik arayüzü olmayan herhangi bir sunucuda çalıştırabilirsiniz. Sadece Aspose kimlik bilgileriniz için ortam değişkenlerinin ayarlandığından emin olun.

Python’da PDF’den XML’e dönüşüm performansını artırmanın önerilen yolu nedir?
BarcodeApi örneğini yeniden kullanın, büyük dosyalar için HTTP zaman aşımını artırın ve yanıt sıkıştırmasını etkinleştirin. Çok büyük PDF’lerde sayfaları toplu olarak işlemeyi düşünün.

SDK PDF’den XML’ye dönüşüm sırasında hataları nasıl ele alır?
Tüm API etkileşimleri başarısızlıkta ApiException fırlatır. e.status ve e.reason değerlerini inceleyerek yeniden deneme, günlük kaydı veya iptal kararını verin. Ayrıntılı hata kodları belgelerde listelenmiştir.

Python’da Aspose.BarCode ile diğer PDF’den XML’e dönüşüm kütüphaneleri arasında bir karşılaştırma var mı?
Aspose.BarCode, birçok genel PDF ayrıştırıcısının sahip olmadığı yerleşik barkod tanıma ve doğrudan XML oluşturma özelliği sunar. Bulut tabanlı mimarisi, yalnızca yerel kütüphanelere göre ölçeklenebilirlik avantajları da sağlar.

Daha Fazla Oku