ByteScout tutorials explain the material for programmers who use C#. ByteScout PDF Renderer SDK was made to help with rendering PDF to image in background thread in C#. ByteScout PDF Renderer SDK is the software development kit for rendering of PDF files into high quality images or thumbnails. Various functions are included as well: batch processing, PNG, TIFF output, selection area to render, layers management to render text or images or vectors only. Designed for use from web, desktop and middleware applications.
You will save a lot of time on writing and testing code as you may just take the code below and use it in your application. This C# sample code should be copied and pasted into your application’s code editor. Then just compile and run it to see how it works. C# application implementation typically includes multiple stages of the software development so even if the functionality works please test it with your data and the production environment.
Our website provides free trial version of ByteScout PDF Renderer SDK. It comes along with all these source code samples with the goal to help you with your C# application implementation.
On-demand (REST Web API) version:
Web API (on-demand version)
On-premise offline SDK for Windows:
60 Day Free Trial (on-premise)
using System;
using System.IO;
using System.Threading;
using Bytescout.PDFRenderer;
namespace RenderingInBackgroundThread
{
class Program
{
private static ManualResetEvent _doneEvent = new ManualResetEvent(false); // synchronization event
private static int _counter; // thread counter
static void Main(string[] args)
{
// Get all PDF files in current directory
string[] pdfFiles = Directory.GetFiles(".", "*.pdf");
_counter = pdfFiles.Length;
// Render PDF files in separate threads
foreach (string pdfFile in pdfFiles)
{
Thread backgroundThread = new Thread(BackgroundThreadProc);
backgroundThread.Start(pdfFile);
Console.WriteLine(pdfFile + " - conversion started.");
}
// Wait until threads finished
_doneEvent.WaitOne();
Console.WriteLine("Done.");
Console.WriteLine();
Console.WriteLine("Press any key to continue...");
Console.ReadKey();
}
// Rendering thread function
private static void BackgroundThreadProc(object data)
{
string fileName = (string) data;
try
{
// Create renderer
using (RasterRenderer renderer = new RasterRenderer())
{
renderer.LoadDocumentFromFile(fileName);
// Setup rendering
RenderingOptions renderingOptions = new RenderingOptions();
renderingOptions.JPEGQuality = 90;
float renderingResolution = 300;
// Render document pages
for (int i = 0; i < renderer.GetPageCount(); i++)
{
renderer.Save(fileName + ".page" + i + ".jpg", RasterImageFormat.JPEG, i, renderingResolution, renderingOptions);
}
}
Console.WriteLine(fileName + " - successfully converted.");
}
catch (Exception exception)
{
Console.WriteLine(exception.ToString());
}
if (Interlocked.Decrement(ref _counter) == 0)
{
// Set event if all threads finished
_doneEvent.Set();
}
}
}
}
60 Day Free Trial or Visit ByteScout PDF Renderer SDK Home Page
Explore ByteScout PDF Renderer SDK Documentation
Explore Samples
Sign Up for ByteScout PDF Renderer SDK Online Training
Get Your API Key
Explore Web API Docs
Explore Web API Samples
60 Day Free Trial or Visit ByteScout PDF Renderer SDK Home Page
Explore ByteScout PDF Renderer SDK Documentation
Explore Samples
Sign Up for ByteScout PDF Renderer SDK Online Training
Get Your API Key
Explore Web API Docs
Explore Web API Samples