File size: 2,221 Bytes
a4d0a87
 
1ae8f9f
c8d472e
a4d0a87
 
 
 
 
 
 
 
 
 
 
 
806c938
 
a4d0a87
 
 
 
806c938
a4d0a87
806c938
 
a4d0a87
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57d3fac
a4d0a87
 
 
 
8dcb382
 
 
a4d0a87
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8dcb382
a4d0a87
1ae8f9f
a4d0a87
 
 
 
 
52f3a2e
 
a4d0a87
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import json
from paddleocr import PaddleOCR
from simple_salesforce import Salesforce

# ------------------------
# CONFIGURATION
# ------------------------
SF_USERNAME = "licproject@2025.com"
SF_PASSWORD = "Lic@2025"
SF_TOKEN = "AmmfRcd6IiYaRtSGntBnzNMQU"
IMAGE_PATH = "sample.jpg"  # Change this to your actual image file path

# ------------------------
# CONNECT TO SALESFORCE
# ------------------------
def connect_salesforce():
    try:
        sf = Salesforce(
            username=SF_USERNAME,
            password=SF_PASSWORD,
            security_token=SF_TOKEN,
            domain="login"  # Production
        )
        print("βœ… Connected to Salesforce (Production)")
        return sf
    except Exception as e:
        print("❌ Production login failed:", e)
        try:
            sf = Salesforce(
                username=SF_USERNAME,
                password=SF_PASSWORD,
                security_token=SF_TOKEN,
                domain="test"  # Sandbox
            )
            print("βœ… Connected to Salesforce (Sandbox)")
            return sf
        except Exception as e2:
            print("❌ Sandbox login failed:", e2)
            return None

# ------------------------
# RUN OCR
# ------------------------
def extract_text_from_image(image_path):
    try:
        ocr = PaddleOCR(use_angle_cls=True, lang='en')
        results = ocr.ocr(image_path, cls=True)
        extracted_text = [line[1][0] for line in results[0]]
        return {"status": "success", "text": extracted_text}
    except Exception as e:
        return {"status": "error", "message": str(e)}

# ------------------------
# MAIN EXECUTION
# ------------------------
if __name__ == "__main__":
    sf_conn = connect_salesforce()
    
    if not sf_conn:
        output = {
            "salesforce_result": {
                "status": "error",
                "message": "Salesforce not connected"
            }
        }
        print(json.dumps(output, indent=4))
        exit()

    ocr_output = extract_text_from_image(IMAGE_PATH)

    final_output = {
        "salesforce_result": {
            "status": "connected"
        },
        "ocr_result": ocr_output
    }

    print(json.dumps(final_output, indent=4))