Cloud API - PDF To JSON - C# - Convert PDF To JSON From Uploaded File - ByteScout

Cloud API – PDF To JSON – C# – Convert PDF To JSON From Uploaded File

  • Home
  • /
  • Articles
  • /
  • Cloud API – PDF To JSON – C# – Convert PDF To JSON From Uploaded File

Cloud API – PDF To JSON – C# – Convert PDF To JSON From Uploaded File

We built Cloud API to enable web and software developers of any skill level to make some shortcuts in many areas of the coding process. This REST API can be used to do the heavy lifting in tasks such as data extraction, document manipulation, and PDF integration or separation. It can also be employed in PDF to JSON conversion from the uploaded file in C#.

Cloud API has a built-in OCR and has a tremendous image recognition capability. It can be used in generating barcodes as well as in reading them from scanned documents, image files, and PDFs.

To save time and energy on your part in testing our technology, we have prepared a sample code you can use. Just copy and paste it on your C# project to see how it can make your work easier, particularly on converting PDF to JSON API from the uploaded file in C#. This useful code snippet is also available on our GitHub.

To better appreciate what our products can offer, just download the FREE ByteScout trial version from our website. It comes with a set of useful tutorials along with the sample source code samples.

Program.cs

using System;
using System.IO;
using System.Net;
using Newtonsoft.Json.Linq;

namespace ByteScoutWebApiExample
{
	class Program
	{
		// (!) 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
		const String API_KEY = "***********************************";
		
		// Source PDF file
		const string SourceFile = @".\sample.pdf";
		// Comma-separated list of page indices (or ranges) to process. Leave empty for all pages. Example: '0,2-5,7-'.
		const string Pages = "";
		// PDF document password. Leave empty for unprotected documents.
		const string Password = "";
		// Destination JSON file name
		const string DestinationFile = @".\result.json";

		static void Main(string[] args)
		{
			// Create standard .NET web client instance
			WebClient webClient = new WebClient();

			// Set API Key
			webClient.Headers.Add("x-api-key", API_KEY);

			// 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 = Uri.EscapeUriString(string.Format(
				"https://api.pdf.co/v1/file/upload/get-presigned-url?contenttype=application/octet-stream&name={0}", 
				Path.GetFileName(SourceFile)));

			try
			{
				// Execute request
				string response = webClient.DownloadString(query);

				// Parse JSON response
				JObject json = JObject.Parse(response);

				if (json["error"].ToObject<bool>() == false)
				{
					// Get URL to use for the file upload
					string uploadUrl = json["presignedUrl"].ToString();
					string uploadedFileUrl = json["url"].ToString();

					// 2. UPLOAD THE FILE TO CLOUD.

					webClient.Headers.Add("content-type", "application/octet-stream");
					webClient.UploadFile(uploadUrl, "PUT", SourceFile); // You can use UploadData() instead if your file is byte[] or Stream
					webClient.Headers.Remove("content-type");

					// 3. CONVERT UPLOADED PDF FILE TO JSON

					// Prepare URL for `PDF To JSON` API call
					query = Uri.EscapeUriString(string.Format(
						"https://api.pdf.co/v1/pdf/convert/to/json?name={0}&password={1}&pages={2}&url={3}",
						Path.GetFileName(DestinationFile),
						Password,
						Pages,
						uploadedFileUrl));

					// Execute request
					response = webClient.DownloadString(query);

					// Parse JSON response
					json = JObject.Parse(response);

					if (json["error"].ToObject<bool>() == false)
					{
						// Get URL of generated JSON file
						string resultFileUrl = json["url"].ToString();

						// Download JSON file
						webClient.DownloadFile(resultFileUrl, DestinationFile);

						Console.WriteLine("Generated JSON file saved as \"{0}\" file.", DestinationFile);
					}
					else
					{
						Console.WriteLine(json["message"].ToString());
					}
				}
				else
				{
					Console.WriteLine(json["message"].ToString());
				}
			}
			catch (WebException e)
			{
				Console.WriteLine(e.ToString());
			}

			webClient.Dispose();


			Console.WriteLine();
			Console.WriteLine("Press any key...");
			Console.ReadKey();
		}
	}
}


  Click here to get your Free Trial version of the SDK

Tutorials:

prev
next