How to Convert PDF to PDF/X with .NET C#
Why Convert to PDF/X with C#?
The pdfRest Convert to PDF/X API Tool is a powerful resource for developers who need to ensure that their PDF files meet the PDF/X standard, which is a subset of the PDF specification that is optimized for the reliable prepress document exchange. This tutorial will demonstrate how to send an API call to Convert to PDF/X using C#. A real-world example of why a user might use Convert to PDF/X is to prepare a document for professional printing, where color consistency and font embedding are crucial.
Convert to PDF/X with C# Code Example
using System.Text; using (var httpClient = new HttpClient { BaseAddress = new Uri("https://api.pdfrest.com") }) { using (var request = new HttpRequestMessage(HttpMethod.Post, "pdfx")) { request.Headers.TryAddWithoutValidation("Api-Key", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"); request.Headers.Accept.Add(new("application/json")); var multipartContent = new MultipartFormDataContent(); var byteArray = File.ReadAllBytes("/path/to/file"); var byteAryContent = new ByteArrayContent(byteArray); multipartContent.Add(byteAryContent, "file", "file_name"); byteAryContent.Headers.TryAddWithoutValidation("Content-Type", "application/pdf"); var byteArrayOption = new ByteArrayContent(Encoding.UTF8.GetBytes("PDF/X-3")); multipartContent.Add(byteArrayOption, "output_type"); request.Content = multipartContent; var response = await httpClient.SendAsync(request); var apiResult = await response.Content.ReadAsStringAsync(); Console.WriteLine("API response received."); Console.WriteLine(apiResult); } }
Reference: pdf-rest-api-samples
Breaking Down the C# Code
The provided code snippet is a C# example of how to call the pdfRest API to convert a PDF file to the PDF/X format. Let's break down the key parts of the code:
using (var httpClient = new HttpClient { BaseAddress = new Uri("https://api.pdfrest.com") })
This line initializes a new instance of the HttpClient
class and sets the base address to the pdfRest API endpoint.
request.Headers.TryAddWithoutValidation("Api-Key", "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx");
The API key is added to the request headers for authorization. Replace the placeholder with your actual API key.
var byteArray = File.ReadAllBytes("/path/to/file"); var byteAryContent = new ByteArrayContent(byteArray); multipartContent.Add(byteAryContent, "file", "file_name");
These lines read the PDF file as a byte array, create a ByteArrayContent
object with it, and add it to the MultipartFormDataContent
with the name "file". The "file_name" should be the name of the file you are uploading.
var byteArrayOption = new ByteArrayContent(Encoding.UTF8.GetBytes("PDF/X-3")); multipartContent.Add(byteArrayOption, "output_type");
This specifies the desired output type for the conversion. In this case, "PDF/X-3" is specified as the output type.
var response = await httpClient.SendAsync(request);
This line sends the multipart/form-data request to the pdfRest API and waits for the response.
var apiResult = await response.Content.ReadAsStringAsync();
Once the response is received, this line reads the content of the response asynchronously as a string.
Beyond the Tutorial
In this tutorial, we've learned how to make a multipart/form-data API call to the pdfRest Convert to PDF/X API using C#. This allows you to programmatically convert PDF files to the PDF/X standard, which is essential for professional printing purposes. You are encouraged to demo all of the pdfRest API Tools in the API Lab at https://pdfrest.com/apilab/ and refer to the API Reference documentation at https://pdfrest.com/documentation/ for more information.
Note: This is an example of a multipart API call. Code samples using JSON payloads can be found at pdf-rest-api-samples.