Split PDF By Text From URL (Node.js) | AWS Lambda | PDF Splitting APIByteScout PDF Extractor SDK

Split PDF By Text From URL (Node.js) | AWS Lambda | PDF Splitting API

app.js:

JavaScript
var https = require("https");

// The authentication key (API Key).
// Get your own by registering at https://app.pdf.co
const API_KEY = "***********************************";

// Source PDF file to split
// You can also upload your own file into PDF.co and use it as url. Check "Upload File" samples for code snippets: https://github.com/bytescout/pdf-co-api-samples/tree/master/File%20Upload/    
const SourceFileUrl = "https://bytescout-com.s3-us-west-2.amazonaws.com/files/demo-files/cloud-api/pdf-split/multiple-invoices.pdf";
// Split Search String
const SplitText = "invoice number";


// Prepare request to `Split PDF By TeExt` API endpoint
var queryPath = `/v1/pdf/split2`;

// JSON payload for api request
var jsonPayload = JSON.stringify({
    searchString: SplitText, url: SourceFileUrl
});

var reqOptions = {
    host: "api.pdf.co",
    method: "POST",
    path: queryPath,
    headers: {
        "x-api-key": API_KEY,
        "Content-Type": "application/json",
        "Content-Length": Buffer.byteLength(jsonPayload, 'utf8')
    }
};

exports.handler = async (event) => {

    let dataString = '';
    const promise_response = await new Promise((resolve, reject) => {

        // Send request
        var postRequest = https.request(reqOptions, (response) => {
            response.on('data', chunk => {
                dataString += chunk;
            });

            response.on('end', () => {
                resolve({
                    statusCode: 200,
                    body: JSON.stringify(JSON.parse(dataString), null, 4)
                });
            });

        }).on("error", (e) => {
            reject({
                statusCode: 500,
                body: 'Something went wrong!'
            });
        });

        // Write request data
        postRequest.write(jsonPayload);
        postRequest.end();
    });

    return promise_response;
};