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