使用 PHP 和 LEADTOOLS Cloud Services 将文件转换为 PDF(Linux 上)





2.00/5 (1投票)
LEADTOOLS 云服务将 LEADTOOLS 文档图像处理功能带到几乎任何编程环境。 它经济实惠的基于消费的定价模式和 Web API 架构可以使您的应用程序比市场上大多数 API 和 SDK 更快地启动和运行。
引言
上个月,我们介绍了 LEADTOOLS 云服务,这是 LEADTOOLS 的一项全新产品,LEADTOOLS 是图像处理 SDK 的全球领导者。 我们重点介绍了它的 OCR、条形码和文档转换功能,以及如何在 Node.js 应用程序中使用这些服务。 在本文中,我们将探讨一个更实际的场景。
创建可搜索的 PDF 存档
将文档存储为可搜索的 PDF 或 PDF/A 有许多充分的理由。 它是一种功能丰富、高效、跨平台且面向未来的文档格式。 实现无纸化仍然是一件大事,尤其是对于银行和保险公司等大型公司而言。 无论您是扫描大批量的纸质文档,还是整合包含不同文件格式的旧有档案,LEADTOOLS 云服务都可以用于轻量级且有效的服务器脚本中,该脚本将自动创建和维护您的标准化存档。
代码
在我们的示例场景中,我们运行一个主要用于文件存储的 Linux 服务器。 使用 Web API 可以保持此服务器的安全和最小化,几乎不需要安装任何新的库或软件,因为它仅仅依赖于 PHP、cURL 和 Internet 连接。
使用 LEADTOOLS 云服务转换文件涉及两个步骤。 首先,您必须发送 Convert
请求并接收回您的请求的 GUID。
function GeneratePostOptions($url, $inputFile)
{
//Function to generate the array of CURL options to be used.
$appId = "YOUR APP ID HERE";
$password = "YOUR APP PASSWORD HERE";
$file = new CURLFile($inputFile);
$imageData = array('image' => $file);
$postOptions = array(
CURLOPT_POST => 1,
CURLOPT_URL => $url,
CURLOPT_FRESH_CONNECT => 1,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_USERPWD => "$appId:$password",
CURLOPT_FORBID_REUSE => 1,
CURLOPT_POSTFIELDS => $imageData,
);
return $postOptions;
}
//Generate the CURL options to be used
$conversionRequestOptions =
GeneratePostOptions($formattedConversionURL, $inputFile);
$request = curl_init();
curl_setopt_array($request, $conversionRequestOptions);
//Set the request URL
if (!$guid = curl_exec($request)) {
echo "There was an error processing the request.
\n\r";
echo $guid;
exit;
}
curl_close($request); //Close the request
echo "Unique ID returned by the services: $guid
\n\r";
现在您的文件已上传并由 LEADTOOLS 云服务处理,您需要使用 Query
方法来轮询服务。 完成后,您可以下载该文件。
//Poll the services to determine if the request has finished processing.
while (true) {
$request = curl_init();
curl_setopt_array($request, $queryRequestOptions); //Set the request URL
if (!$results = curl_exec($request)) {
echo "There was an error querying the services \n\r";
echo $results;
curl_close($request);
exit;
}
curl_close($request);
$decodedResponse = json_decode($results);
$fileStatus = $decodedResponse->{'FileStatus'};
if ($fileStatus != 100 && $fileStatus != 123) {
//The file has finished processing
break;
}
sleep(5); //If the file hasn't finished processing, we will wait 5 seconds before checking again.
}
echo "File finished processing with file status: " . $fileStatus . "\n\r";
//The file did not process successfully. Refer to our documentation for the full list of File Statuses and their associated meanings.
if ($fileStatus != 200) {
exit;
}
echo "Results: \n\r";
//Decode and parse the JSON results.
$jsonArray = $decodedResponse->{'RequestData'};
foreach ($jsonArray as $serviceResults) {
echo "Service Type: " . $serviceResults->{'ServiceType'} . "\n\r";
echo "URL List: \n\r";
foreach ($serviceResults->{'urls'} as $url) {
// Download the file
$path = parse_url($url, PHP_URL_PATH);
echo "Downloading " . basename($path) . " ...\n\r\n\r";
file_put_contents("/home/gregr/Documents/output/" . basename($path), fopen($url, "r"));
echo $url . " downloaded\n\r";
}
}
就是这样! 该解决方案非常灵活,几乎可以从任何应用程序、服务、计划程序或文件夹监视器启动,以转换您的文件并将其添加到存档中。
其他用途
显然,这只是一个简单的示例,但可以扩展以满足许多实际应用程序的需求。 如上所述,像这样的简单 PHP 脚本可以插入到几乎任何需要实现文档文件转换的现有应用程序中。
如果您不想使用 PHP,LEADTOOLS 云服务可以在许多其他语言中使用,例如 C#、JavaScript、Python 和 Perl,在广泛的环境中具有相同的简单性。
结论
LEADTOOLS 云服务将 LEADTOOLS 文档图像处理功能带到几乎任何编程环境。 它经济实惠的基于消费的定价模式和 Web API 架构可以使您的应用程序比市场上大多数 API 和 SDK 更快地启动和运行。 访问 https://services.leadtools.com 获取更多信息。
下载完整的 LEADTOOLS 云服务示例
您可以下载功能齐全的演示,其中包括上面讨论的功能。 解压缩 .zip 文件并按照源代码注释中的说明进行操作。
支持
需要帮助来启动和运行此示例吗? 联系我们的支持团队以获得免费的技术支持! 有关定价或许可问题,您可以联系我们的销售团队 CloudSales@leadtools.com 或致电 704-332-5532。