Cloud API is a REST API designed to streamline the coding process for many common tasks performed by software and web developers. One of which is converting PDF to Excel from the uploaded file in Java.
Cloud API has an extensive tool library that can be utilized easily by both expert and entry-level developers. Complex tasks such as data extraction, PDF integration or division, and document creation or manipulation can be done in a jiffy using this Web API. It is likewise equipped with image recognition technology and a built-in OCR. Thus, it can generate and read barcodes from PDFs, image files, and scanned documents.
Copy and paste the sample code we provided here to your Java project to test its functionality in converting PDF to Excel API. It will save you a considerable amount of time and energy in writing and testing codes. You may also obtain this Java source code from our GitHub.
Check out our FREE downloadable ByteScout trial version on our website. It contains not just source code samples, but a set of programming tutorials as well.
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 XLS file name final static Path DestinationFile = Paths.get(".\\result.xls"); 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()); // 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", 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 XLS PdfToXls(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 PdfToXls(OkHttpClient webClient, String apiKey, Path destinationFile, String password, String pages, String uploadedFileUrl) throws IOException { // Prepare URL for `PDF To XLS` API call String query = String.format( "https://api.pdf.co/v1/pdf/convert/to/xls?name=%s&password=%s&pages=%s&url=%s", destinationFile.getFileName(), password, pages, uploadedFileUrl); // Prepare request Request request = new Request.Builder() .url(query) .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 XLS file String resultFileUrl = json.get("url").getAsString(); // Download XLS file downloadFile(webClient, resultFileUrl, destinationFile.toFile()); System.out.printf("Generated XLS 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