Cloud API - PDF To XML API - PHP - Convert PDF To XML From Uploaded File - ByteScout
Announcement
Our ByteScout SDK products are sunsetting as we focus on expanding new solutions.
Learn More Open modal
Close modal
Announcement Important Update
ByteScout SDK Sunsetting Notice
Our ByteScout SDK products are sunsetting as we focus on our new & improved solutions. Thank you for being part of our journey, and we look forward to supporting you in this next chapter!

Cloud API – PDF To XML API – PHP – Convert PDF To XML From Uploaded File

  • Home
  • /
  • Articles
  • /
  • Cloud API – PDF To XML API – PHP – Convert PDF To XML From Uploaded File

Cloud API – PDF To XML API – PHP – Convert PDF To XML From Uploaded File

pdf-to-xml.php

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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>PDF To XML Extraction Results</title>
</head>
<body>
 
<?php
 
// Get submitted form data
$apiKey = $_POST&#91;"apiKey"&#93;; // The authentication key (API Key). Get your own by registering at https://app.pdf.co/documentation/api
$pages = $_POST&#91;"pages"&#93;;
 
 
// 1. RETRIEVE THE PRESIGNED URL TO UPLOAD THE FILE.
// * If you already have the direct PDF file link, go to the step 3.
 
// Create URL
    "?name=" . $_FILES&#91;"file"&#93;&#91;"name"&#93; .
    "&contenttype=application/octet-stream";
     
// Create request
$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPHEADER, array("x-api-key: " . $apiKey));
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// Execute request
$result = curl_exec($curl);
 
if (curl_errno($curl) == 0)
{
    $status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
     
    if ($status_code == 200)
    {
        $json = json_decode($result, true);
         
        // Get URL to use for the file upload
        $uploadFileUrl = $json&#91;"presignedUrl"&#93;;
        // Get URL of uploaded file to use with later API calls
        $uploadedFileUrl = $json&#91;"url"&#93;;
         
        // 2. UPLOAD THE FILE TO CLOUD.
         
        $localFile = $_FILES&#91;"file"&#93;&#91;"tmp_name"&#93;;
        $fileHandle = fopen($localFile, "r");
         
        curl_setopt($curl, CURLOPT_URL, $uploadFileUrl);
        curl_setopt($curl, CURLOPT_HTTPHEADER, array("content-type: application/octet-stream"));
        curl_setopt($curl, CURLOPT_PUT, true);
        curl_setopt($curl, CURLOPT_INFILE, $fileHandle);
        curl_setopt($curl, CURLOPT_INFILESIZE, filesize($localFile));
 
        // Execute request
        curl_exec($curl);
         
        fclose($fileHandle);
         
        if (curl_errno($curl) == 0)
        {
            $status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
             
            if ($status_code == 200)
            {
                // 3. CONVERT UPLOADED PDF FILE TO XML
                 
                ExtractXML($apiKey, $uploadedFileUrl, $pages);
            }
            else
            {
                // Display request error
                echo "<p>Status code: " . $status_code . "</p>";
                echo "<p>" . $result . "</p>";
            }
        }
        else
        {
            // Display CURL error
            echo "Error: " . curl_error($curl);
        }
    }
    else
    {
        // Display service reported error
        echo "<p>Status code: " . $status_code . "</p>";
        echo "<p>" . $result . "</p>";
    }
     
    curl_close($curl);
}
else
{
    // Display CURL error
    echo "Error: " . curl_error($curl);
}
 
function ExtractXML($apiKey, $uploadedFileUrl, $pages)
{
    // Create URL
        "?url=" . $uploadedFileUrl .
        "&pages=" . $pages;
     
    // Create request
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_HTTPHEADER, array("x-api-key: " . $apiKey));
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
 
    // Execute request
    $result = curl_exec($curl);
     
    if (curl_errno($curl) == 0)
    {
        $status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
         
        if ($status_code == 200)
        {
            $json = json_decode($result, true);
             
            if ($json["error"] == false)
            {
                $resultFileUrl = $json["url"];
                 
                // Display link to the file with conversion results
                echo "<div><h2>Conversion Result:</h2><a href='" . $resultFileUrl . "' target='_blank'>" . $resultFileUrl . "</a></div>";
            }
            else
            {
                // Display service reported error
                echo "<p>Error: " . $json["message"] . "</p>";
            }
        }
        else
        {
            // Display request error
            echo "<p>Status code: " . $status_code . "</p>";
            echo "<p>" . $result . "</p>";
        }
    }
    else
    {
        // Display CURL error
        echo "Error: " . curl_error($curl);
    }
     
    // Cleanup
    curl_close($curl);
}
 
?>
 
</body>
</html>

  Click here to get your Free Trial version of the SDK

Tutorials:

prev
next