Form1.vb
Imports System.IO Imports System.Net Imports Newtonsoft.Json.Linq Public Class Form1 #Region "File Selection" Private Sub btnSelectInputFile_Click(sender As Object, e As EventArgs) Handles btnSelectInputFile.Click OpenFileDialog1.ShowDialog() End Sub Private Sub OpenFileDialog1_FileOk(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk txtInputPDFFileName.Text = OpenFileDialog1.FileName End Sub #End Region #Region "Convert PDF to Excel" ''' <summary> ''' Perform convert PDF to Excel ''' </summary> Private Sub btnConvert_Click(sender As Object, e As EventArgs) Handles btnConvert.Click Try If (ValidateInputs()) Then ' Comma-separated list of page indices (Or ranges) to process. Leave empty for all pages. Example '0,2-5,7-'. Const Pages As String = "" ' PDF document password. Leave empty for unprotected documents. Const Password As String = "" ' Checks whether convert to as inline content. Dim isInline As Boolean = Convert.ToString(cmbOutputAs.SelectedItem).ToLower() = "inline content" ' Destination file name Dim DestinationFile As String = String.Format(".\{0}.{1}", Path.GetFileNameWithoutExtension(txtInputPDFFileName.Text), Convert.ToString(cmbConvertTo.SelectedItem).ToLower()) ' Create standard .NET web client instance Dim webClient As WebClient = New WebClient() ' Set API Key webClient.Headers.Add("x-api-key", txtCloudAPIKey.Text.Trim()) ' 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 Dim query As String = Uri.EscapeUriString( String.Format("https://api.pdf.co/v1/file/upload/get-presigned-url?contenttype=application/octet-stream&name={0}", Path.GetFileName(txtInputPDFFileName.Text))) ' Execute request Dim response As String = webClient.DownloadString(query) ' Parse JSON response Dim json As JObject = JObject.Parse(response) If json("error").ToObject(Of Boolean)() = False Then ' Get URL to use for the file upload Dim uploadUrl As String = json("presignedUrl").ToString() Dim uploadedFileUrl As String = json("url").ToString() ' 2. UPLOAD THE FILE TO CLOUD. webClient.Headers.Add("content-type", "application/octet-stream") webClient.UploadFile(uploadUrl, "PUT", txtInputPDFFileName.Text) webClient.Headers.Remove("content-type") ' 3. CONVERT UPLOADED PDF FILE TO Excel ' Prepare URL for `PDF To Excel` API call query = Uri.EscapeUriString( String.Format("https://api.pdf.co/v1/pdf/convert/to/{4}?name={0}&password={1}&pages={2}&url={3}&encrypt=true&inline={5}", Path.GetFileName(DestinationFile), Password, Pages, uploadedFileUrl, Convert.ToString(cmbConvertTo.SelectedItem).ToLower(), isInline)) ' Execute request response = webClient.DownloadString(query) ' Parse JSON response json = JObject.Parse(response) If json("error").ToObject(Of Boolean)() = False Then ' Get URL of generated Excel file Dim resultFileUrl As String = json("url").ToString() ' Download Excel output file webClient.DownloadFile(resultFileUrl, DestinationFile) MessageBox.Show($"Generated XLS file saved as {DestinationFile} file.", "Success!") ' Open Downloaded output file Process.Start(DestinationFile) Else MessageBox.Show(json("message").ToString()) End If Else MessageBox.Show(json("message").ToString()) End If webClient.Dispose() End If Catch ex As Exception MessageBox.Show(ex.Message, "Error") End Try End Sub ''' <summary> ''' Validates form inputs ''' </summary> ''' <returns></returns> Private Function ValidateInputs() As Boolean If (String.IsNullOrEmpty(txtCloudAPIKey.Text)) Then Throw New Exception("Cloud API key cannot be empty") End If If (String.IsNullOrEmpty(txtInputPDFFileName.Text)) Then Throw New Exception("Input PDf file must be selected/entered.") End If If (Not System.IO.File.Exists(txtInputPDFFileName.Text)) Then Throw New Exception("Input file does not exits.") End If If (System.IO.Path.GetExtension(txtInputPDFFileName.Text).ToLower() <> ".pdf") Then Throw New Exception("Input file must be PDF") End If If (String.IsNullOrEmpty(Convert.ToString(cmbConvertTo.SelectedItem))) Then Throw New Exception("Please select convert to option.") End If If (String.IsNullOrEmpty(Convert.ToString(cmbOutputAs.SelectedItem))) Then Throw New Exception("Please select output-as option") End If Return True End Function #End Region End Class
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