What is ByteScout Cloud API Server? It is the ready to deploy Web API Server that can be deployed in less than thirty minutes into your own in-house Windows server (no Internet connnection is required to process data!) or into private cloud server. Can store data on in-house local server based storage or in Amazon AWS S3 bucket. Processing data solely on the server using built-in ByteScout powered engine, no cloud services are used to process your data!.
On-demand (REST Web API) version:
Web API (on-demand version)
On-premise offline SDK for Windows:
60 Day Free Trial (on-premise)
unit ByteScoutWebApiExec;
interface
function WebAPIExec(query, api_key: string; var file_name: string): boolean;
implementation
uses
System.SysUtils,
Classes,
IdHTTP,
IdURI,
IdSSL,
IdSSLOpenSSL,
System.JSON;
function WebAPIExec(query, api_key: string; var file_name: string): boolean;
var
http: TIdHTTP;
http_file_downloader: TIdHTTP;
response_stream: TStringStream;
response: string;
io_handler: TIdSSLIOHandlerSocketOpenSSL;
response_json: TJSONObject;
is_error: TJSONBool;
file_url: string;
file_stream: TFileStream;
error_message: TJSONString;
begin
Result := false;
file_name := '';
// Put the necessary libeay32.dll & ssleay32.dll library versions in the
// program folder
io_handler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
io_handler.SSLOptions.Method := sslvSSLv23;
io_handler.SSLOptions.SSLVersions := [sslvSSLv23];
http := TIdHTTP.Create(nil);
http.HTTPOptions := http.HTTPOptions + [hoForceEncodeParams];
http.AllowCookies := true;
http.HandleRedirects := true;
http.Request.Connection := 'keep-alive';
http.Request.ContentType := 'application/json; charset=utf-8';
http.Request.UserAgent := 'User-Agent:Mozilla/5.0 (Windows NT 6.1; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36';
http.IOHandler := io_handler;
response_stream := TStringStream.Create();
file_stream := nil;
http_file_downloader := nil;
try
try
// Set API Key
http.Request.CustomHeaders.AddValue('x-api-key', api_key);
// Execute request
http.Get(query, response_stream);
// Parse JSON response
response_json := TJSONObject.ParseJSONValue(response_stream.DataString, false) as TJSONObject;
is_error := response_json.Values['error'] as TJSONBool;
if (not is_error.AsBoolean) then begin
file_url := TJSONString(response_json.Values['url']).ToString();
file_url := StringReplace(file_url, '"', '', [rfReplaceAll]);
file_name := ExtractFileName(StringReplace(file_url, '/', '\', [rfReplaceAll]));
file_name := IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0))) + file_name;
http_file_downloader := TIdHTTP.Create(nil);
// Download generated file
file_stream := TFileStream.Create(file_name, fmCreate);
http_file_downloader.Get(file_url, file_stream);
Result := true;
end else begin
error_message := response_json.Values['message'] as TJSONString;
raise Exception.Create(error_message.ToString);
end;
except
on E: Exception do begin
response := http.ResponseText;
Writeln(E.ClassName, ': ', E.Message);
end;
end;
finally
response_stream.Free();
http.Free();
if (Assigned(file_stream)) then
file_stream.Free();
if (Assigned(http_file_downloader)) then
http_file_downloader.Free();
end;
end;
end.
program GenerateBarcode;
//*******************************************************************************************//
// //
// Download Free Evaluation Version From: https://bytescout.com/download/web-installer //
// //
// Also available as Web API! Get Your Free API Key: https://app.pdf.co/signup //
// //
// Copyright ? 2017-2020 ByteScout, Inc. All rights reserved. //
// https://www.bytescout.com //
// https://pdf.co //
// //
//*******************************************************************************************//
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,
Classes,
IdURI,
ByteScoutWebApiExec in 'ByteScoutWebApiExec.pas';
const
// The authentication key (API Key).
// Get your own by registering at https://app.pdf.co/documentation/api
API_KEY: string = '********************************************'
// Result file name
RESULT_FILE_NAME: string = 'barcode.png';
// Barcode type. See valid barcode types in the documentation https://secure.bytescout.com/cloudapi.html#api-Default-barcodeGenerateGet
BARCODE_TYPE: string = 'Code128';
// Barcode value
BARCODE_VALUE: string = 'qweasd123456';
var
query: string;
file_name: string;
waiting_any_key: char;
begin
try
// Prepare URL for `Barcode Generator` API call
query := TIdURI.URLEncode(Format('https://localhost/barcode/generate' +
'?name=%s&type=%s&value=%s',
[ExtractFileName(RESULT_FILE_NAME), BARCODE_TYPE, BARCODE_VALUE]));
if (WebAPIExec(query, API_KEY, file_name)) then
Writeln(Format('Generated barcode saved to "%s" file."', [file_name]));
finally
Writeln('Press any key to continue...');
Readln(waiting_any_key);
end;
end.
See also:
Get Your API Key
See also: