Developers of any skill level or experience would find writing the code to convert PDF to JSON from uploaded file in Java is fast and easy when using Cloud API.
Not only that Cloud API streamlines the process of PDF to JSON Web API conversion in Java, it likewise provides a set of tools for various functions. This Rest API can easily implement data extraction, document manipulation, splitting, and merging PDFs, and a lot more. And with its built-in OCR and image recognition technology, it can also generate and read barcodes from images, scans, and PDFs.
By taking the code below, you can instantly use it in your applications without the need to write and test a code of your own. Just open your Java project, copy & paste the code then run your app! All you need for implementing PDF to JSON Web API is to use this basic programming language sample code for Java to get the job done.
Our website offers a FREE downloadable ByteScout trial version. Besides some very useful source code samples, it also includes programming tutorials. So, don’t miss it!
package com.company; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import okhttp3.*; import java.io.*; import java.nio.file.Path; import java.nio.file.Paths; public class Main { // (!) If you are getting '(403) Forbidden' error please ensure you have set the correct API_KEY // The authentication key (API Key). // Get your own by registering at https://secure.bytescout.com/users/sign_up final static String API_KEY = "***********************************"; // Source PDF file final static Path SourceFile = Paths.get(".\\sample.pdf"); // Comma-separated list of page indices (or ranges) to process. Leave empty for all pages. Example: '0,2-5,7-'. final static String Pages = ""; // PDF document password. Leave empty for unprotected documents. final static String Password = ""; // Destination JSON file name final static Path DestinationFile = Paths.get(".\\result.json"); public static void main(String[] args) throws IOException { // Create HTTP client instance OkHttpClient webClient = new OkHttpClient(); // 1. RETRIEVE THE PRESIGNED URL TO UPLOAD THE FILE. // * If you already have a direct file URL, skip to the step 3. // Prepare URL for `Get Presigned URL` API call String query = String.format( "https://api.pdf.co/v1/file/upload/get-presigned-url?contenttype=application/octet-stream&name=%s", SourceFile.getFileName()); // Prepare request Request request = new Request.Builder() .url(query) .addHeader("x-api-key", API_KEY) // (!) Set API Key .build(); // Execute request Response response = webClient.newCall(request).execute(); if (response.code() == 200) { // Parse JSON response JsonObject json = new JsonParser().parse(response.body().string()).getAsJsonObject(); boolean error = json.get("error").getAsBoolean(); if (!error) { // Get URL to use for the file upload String uploadUrl = json.get("presignedUrl").getAsString(); // Get URL of uploaded file to use with later API calls String uploadedFileUrl = json.get("url").getAsString(); // 2. UPLOAD THE FILE TO CLOUD. if (uploadFile(webClient, API_KEY, uploadUrl, SourceFile)) { // 3. CONVERT UPLOADED PDF FILE TO JSON PdfToJson(webClient, API_KEY, DestinationFile, Password, Pages, uploadedFileUrl); } } else { // Display service reported error System.out.println(json.get("message").getAsString()); } } else { // Display request error System.out.println(response.code() + " " + response.message()); } } public static void PdfToJson(OkHttpClient webClient, String apiKey, Path destinationFile, String password, String pages, String uploadedFileUrl) throws IOException { // Prepare URL for `PDF To JSON` API call String query = String.format( "https://api.pdf.co/v1/pdf/convert/to/json?name=%s&password=%s&pages=%s&url=%s", destinationFile.getFileName(), password, pages, uploadedFileUrl); // Make correctly escaped (encoded) URL URL url = null; try { url = new URI(null, query, null).toURL(); } catch (URISyntaxException e) { e.printStackTrace(); } // Prepare request Request request = new Request.Builder() .url(url) .addHeader("x-api-key", apiKey) // (!) Set API Key .build(); // Execute request Response response = webClient.newCall(request).execute(); if (response.code() == 200) { // Parse JSON response JsonObject json = new JsonParser().parse(response.body().string()).getAsJsonObject(); boolean error = json.get("error").getAsBoolean(); if (!error) { // Get URL of generated JSON file String resultFileUrl = json.get("url").getAsString(); // Download JSON file downloadFile(webClient, resultFileUrl, destinationFile.toFile()); System.out.printf("Generated JSON file saved as \"%s\" file.", destinationFile.toString()); } else { // Display service reported error System.out.println(json.get("message").getAsString()); } } else { // Display request error System.out.println(response.code() + " " + response.message()); } } public static boolean uploadFile(OkHttpClient webClient, String apiKey, String url, Path sourceFile) throws IOException { // Prepare request body RequestBody body = RequestBody.create(MediaType.parse("application/octet-stream"), sourceFile.toFile()); // Prepare request Request request = new Request.Builder() .url(url) .addHeader("x-api-key", apiKey) // (!) Set API Key .addHeader("content-type", "application/octet-stream") .put(body) .build(); // Execute request Response response = webClient.newCall(request).execute(); return (response.code() == 200); } public static void downloadFile(OkHttpClient webClient, String url, File destinationFile) throws IOException { // Prepare request Request request = new Request.Builder() .url(url) .build(); // Execute request Response response = webClient.newCall(request).execute(); byte[] fileBytes = response.body().bytes(); // Save downloaded bytes to file OutputStream output = new FileOutputStream(destinationFile); output.write(fileBytes); output.flush(); output.close(); response.close(); } }
Click here to get your Free Trial version of the SDK
IMPORTANT:
Cloud API is deprecated and was replaced with more powerful and secure www.PDF.co Web API
CLICK HERE
TO LEARN MORE
ABOUT NEW
www.PDF.co
w/ Web API
On-Premise API Server
Cloud API Server