to Converter Online
A live demo of BuildVu — an embeddable conversion library for your own applications
Alert
Advanced options
Uploading your file...
Your file was successfully converted from PDF to HTML
Converter Unavailable
Unfortunately the online converter is currently unavailable, please come back and try again later. Thank you.
File Too Large
The file you have selected is too large. We only accept files under 50MB, please try a new file.
Error
An error occurred. Please try again
Submit file to support team
How to convert PDF to HTML
- Select the PDF file you would like to convert
- Configure the conversion using the advanced options
- Convert your PDF file to HTML
- View or save your newly created HTML file
| Pricing | Limitations | Usage restrictions | Max file size |
| Free | 5 files per day, watermark | Free for Personal and Commercial use | Up to 50MB |
About this converter and BuildVu
This free online converter runs BuildVu, IDRsolutions' PDF to HTML conversion engine. When you upload a file here, you're seeing the same output your application would produce.
The software exposes a REST API, making it callable from any language that can make an HTTP POST request. We have specific examples for C#, Dart, Java, JavaScript, Node.js, PHP, Python and Ruby.
It converts PDF files to clean, standards-compliant HTML5 and CSS while preserving the original layout, fonts, and structure without rasterising content to images.
Unlike the online converter above, which requires manual file upload, BuildVu is designed for automated, unattended processing, converting single files or entire directories programmatically as part of a pipeline.
If the output quality meets your requirements, you can trial the commercial version for use on your own servers or via our cloud API.
Running BuildVu on your own infrastructure means PDF files never leave your environment with no third-party processing, no data retention questions.
Convert using Cloud API
Our cloud API allows more files, has additional features and can be accessed programmatically.
<?php
require_once __DIR__ . "/PATH/TO/vendor/autoload.php";
use IDRsolutions\IDRCloudClient;
$endpoint = "https://cloud.idrsolutions.com/cloud/" . IDRCloudClient::INPUT_BUILDVU;
$parameters = array(
'token' => 'YOUR_TRIAL_TOKEN', // Token provided to you via e-mail
'input' => IDRCloudClient::INPUT_UPLOAD,
'file' => 'path/to/file.pdf'
);
$results = IDRCloudClient::convert(array(
'endpoint' => $endpoint,
'parameters' => $parameters
));
IDRCloudClient::downloadOutput($results, 'path/to/outputDir');
echo $results['downloadUrl'];require 'idr_cloud_client'
client = IDRCloudClient.new('https://cloud.idrsolutions.com/cloud/' + IDRCloudClient::BUILDVU)
conversion_results = client.convert(
input: IDRCloudClient::UPLOAD,
file: 'path/to/file.pdf',
token: 'YOUR_TRIAL_TOKEN' # Token provided to you via e-mail
)
client.download_result(conversion_results, 'path/to/outputDir')
puts 'Converted: ' + conversion_results['downloadUrl']using idrsolutions_csharp_client;
var client = new IDRCloudClient("https://cloud.idrsolutions.com/cloud/" + IDRCloudClient.BUILDVU);
try
{
Dictionary<string, string> parameters = new Dictionary<string, string>
{
["input"] = IDRCloudClient.UPLOAD,
["token"] = "YOUR_TRIAL_TOKEN", // Token provided to you via e-mail
["file"] = "path/to/file.pdf"
};
Dictionary<string, string> conversionResults = client.Convert(parameters);
client.DownloadResult(conversionResults, "path/to/outputDir");
Console.WriteLine("Converted: " + conversionResults["downloadUrl"]);
}
catch (Exception e)
{
Console.WriteLine("File conversion failed: " + e.Message);
}var idrcloudclient = require('@idrsolutions/idrcloudclient');
idrcloudclient.convert({
endpoint: 'https://cloud.idrsolutions.com/cloud/' + idrcloudclient.BUILDVU,
parameters: {
input: idrcloudclient.UPLOAD,
file: 'path/to/file.pdf',
token: 'YOUR_TRIAL_TOKEN' // Token provided to you via e-mail
},
failure: function(e) {
console.log(e);
},
progress: function() { },
success: function(e) {
console.log('Converted ' + e.downloadUrl);
}
});from IDRSolutions import IDRCloudClient
client = IDRCloudClient('https://cloud.idrsolutions.com/cloud/' + IDRCloudClient.BUILDVU)
try:
result = client.convert(
input=IDRCloudClient.UPLOAD,
file='path/to/file.pdf',
token='YOUR_TRIAL_TOKEN' # Token provided to you via e-mail
)
outputURL = result['downloadUrl']
client.downloadResult(result, 'path/to/outputDir')
if outputURL is not None:
print("Download URL: " + outputURL)
except Exception as error:
print(error)// To add the client to your project use will need to add the file idrcloudclient.js to your project and include the following line to access it:
// <script src="path/to/idrcloudclient.js" type="text/javascript"></script>
var endpoint = 'https://cloud.idrsolutions.com/cloud/' + IDRCloudClient.BUILDVU;
var parameters = {
token: 'YOUR_TRIAL_TOKEN', // Token provided to you via e-mail
input: IDRCloudClient.UPLOAD,
file: 'path/to/exampleFile.pdf'
}
function progressListener(e) {
console.log(JSON.stringify(e));
}
function failureListener(e) {
console.log(e);
console.log('Failed!');
}
function successListener(e) {
console.log(JSON.stringify(e));
console.log('Download URL: ' + e.downloadUrl);
}
IDRCloudClient.convert({
endpoint: endpoint,
parameters: parameters,
// The below are the available listeners
progress: progressListener,
success: successListener,
failure: failureListener
});import java.util.Map;
public final class ExampleUsage {
public static void main(final String[] args) {
final IDRCloudClient client = new IDRCloudClient("https://cloud.idrsolutions.com/cloud/" + IDRCloudClient.BUILDVU);
final HashMap<String, String> params = new HashMap<>();
params.put("token", "YOUR_TRIAL_TOKEN"); // Token provided to you via e-mail
params.put("input", IDRCloudClient.UPLOAD);
params.put("file", "path/to/file.pdf");
try {
final Map<String, String> results = client.convert(params);
System.out.println(" --------- ");
System.out.println(results.get("previewUrl"));
IDRCloudClient.downloadResults(results, "path/to/outputDir", "example");
} catch (final ClientException | InterruptedException e) {
e.printStackTrace();
}
}
}import 'dart:io';
import 'package:http/http.dart' as http;
import 'package:http_parser/http_parser.dart';
import 'package:path/path.dart';
import 'dart:convert' as convert;
void main() async {
final apiUrl = 'https://cloud.idrsolutions.com/cloud/buildvu';
final filePath = 'path/to/exampleFile.pdf';
final file = File(filePath);
// Prepare the request headers and form data
final request = http.MultipartRequest('POST', Uri.parse(apiUrl));
request.fields['token'] = 'YOUR_TRIAL_TOKEN'; // Token provided to you via e-mail
request.fields['input'] = 'upload';
// Add the file to the form data
final fileBytes = await file.readAsBytes();
final fileStream = http.ByteStream.fromBytes(fileBytes);
final fileLength = file.lengthSync();
final fileName = basename(filePath);
request.files.add(http.MultipartFile(
'file',
fileStream,
fileLength,
filename: fileName,
contentType: MediaType('application', 'pdf'),
));
late String uuid;
// Send the request to upload the file
try {
final response = await request.send();
if (response.statusCode != 200) {
print('Error uploading file: ${response.statusCode}');
exit(1);
}
final responseBody = await response.stream.bytesToString();
final Map<String, dynamic> responseData = convert.jsonDecode(responseBody);
uuid = responseData['uuid'];
print('File uploaded successfully!');
} catch (e) {
print('Error uploading file: $e');
exit(1);
}
// Poll until done
try {
while (true) {
final pollResponse = await http.Request('GET', Uri.parse('$apiUrl?uuid=$uuid')).send();
if (pollResponse.statusCode != 200) {
print('Error Polling: ${pollResponse.statusCode}');
exit(1);
}
final Map<String, dynamic> pollData = convert.jsonDecode(await pollResponse.stream.bytesToString());
if (pollData['state'] == "processed") {
print("Preview URL: ${pollData['previewUrl']}");
print("Download URL: ${pollData['downloadUrl']}");
break;
} else {
print("Polling: ${pollData['state']}");
}
// Wait for next poll
await Future.delayed(Duration(seconds: 1));
}
} catch (e) {
print('Error polling file: $e');
exit(1);
}
}| Pricing | Limitations | Usage restrictions | Max file size |
| 350-450 USD a month | 1 file at a time | Max 500 conversions a day | Up to 250MB |
Convert on your own Cloud or On-Premise Servers
Our software can be licensed to run on your own hardware, providing maximum security and flexibility.
# PDF to HTML
java -Xmx512M -jar buildvu-html.jar /inputDirectory/ /outputDirectory/
# PDF to SVG
java -Xmx512M -jar buildvu-svg.jar /inputDirectory/ /outputDirectory/docker run -p 80:80 --mount "source=/path/to/war/buildvu-microservice.war,target=/usr/local/tomcat/webapps/ROOT.war,type=bind" idrsolutions/buildvuHTMLConversionOptions conversionOptions = new HTMLConversionOptions();
// Set conversion options here e.g. conversionOptions.setCompressImages(true);
IDRViewerOptions viewerOptions = new IDRViewerOptions();
// Set viewer options here e.g. viewerOptions.setViewerUI(IDRViewerOptions.ViewerUI.Clean);
File pdfFile = new File("C:/MyDocument.pdf");
File outputDir = new File("C:/MyOutputDirectory/");
PDFtoHTML5Converter converter = new PDFtoHTML5Converter(pdfFile, outputDir, conversionOptions, viewerOptions);
try {
converter.convert();
} catch (PdfException e) {
e.printStackTrace();
}| Pricing | Limitations | Usage restrictions | Max file size |
| 4,500 USD per year | Capacity of Server | Max 8 cores | Unlimited |
PDF Information
| Name | |
| File Extension | |
| MIME Type | application/pdf |
| Category | Document Format |
| Description | PDF (Portable Document Format) is a document format which can include links and buttons, form fields, audio, video, and business logic. PDF files are very popular because they are portable across different systems but they are not ideal for showing content online and on mobile devices. |
HTML Information
| Name | HTML |
| File Extension | .html |
| MIME Type | text/html |
| Category | Document Format |
| Description | HTML (Hypertext Markup Language) is the core language of the internet and is used to design and build web sites. Converting documents to HTML allows the document to be displayed in the web browser, allowing you to view the document on any desktop, mobile or tablet device. |
Frequently Asked Questions
What is the online converter and how does it relate to BuildVu?
The online converter is a live demo of BuildVu, IDRsolutions' PDF to HTML conversion engine. The output you see here is exactly what your application would produce after integrating BuildVu.
How does PDF to HTML conversion preserve fonts and layout?
BuildVu converts text, fonts, and positioning data from the PDF directly into HTML and CSS — it does not rasterise pages to images. The result is selectable, searchable text with the original visual layout intact.
How is this different from a PDF viewer like PDF.js?
A PDF viewer renders a PDF inside the browser — the PDF file itself remains the source. BuildVu converts the PDF into standalone HTML files that any browser can render without a PDF viewer or plugin. The output is independent of the original PDF.
Are my PDF files processed securely?
The free online converter uploads files to IDRsolutions' servers, where they are stored for up to one hour before deletion.
Does BuildVu require me to manually upload files?
Unlike this demo tool, which requires a manual file upload, BuildVu is designed for automated processing — converting single files or entire directories programmatically without any user interaction.
Can I run this conversion server-side in my own application?
Yes. BuildVu is available as a self-hosted server license (runs on your own hardware or cloud infrastructure) or as a managed cloud API. Both support programmatic conversion without file limits or watermarks.
How does your converter compare to other PDF to HTML/ Image/ SVG converters?
Our online converter is free to use and uses all our commercial software to do conversion.
Does the online converter include support?
No, there is no support included with our online converter.
Is there a limit on the size and number of files I can convert?
Yes, there is a 50MB file size limit and you can convert 5 files per day. If you are looking to convert more documents than that please contact our sales team at https://www.idrsolutions.com/contact-us.
External hyperlinks do not work?
The free online converter does not support hyperlinks to prevent phishing. Hyperlinks are supported in the commercial version of BuildVu, however.
Can I use my converted file on my website?
You can use it for any legitimate commercial or personal use so long as you do not remove the watermark linking to our converter.