to Converter Online

A live demo of BuildVu — an embeddable conversion library for your own applications

Alert

 


Advanced options

Uploading your file...

Come and visit us...

How to convert Word to HTML5

  1. Select the Word file you would like to convert
  2. Configure the conversion using the advanced options
  3. Convert your Word file to HTML5
  4. View or save your newly created HTML5 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 HTML5 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/buildvu
HTMLConversionOptions 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

Word Information

Name Word
File Extension .doc
.docx
MIME Type application/msword
application/vnd.openxmlformats-officedocument.wordprocessingml.document
Category Document Format
Description Word is a document format which can contain text, data, charts, images, tables and more. Microsoft Word files use a .doc or .docx filename extension, however OpenOffice and LibreOffice formats such as .odt, .fodt and .sxw are also supported by the online converter.

HTML5 Information

Name HTML5
File Extension .html
MIME Type text/html
Category Document Format
Description HTML (Hypertext Markup Language) is a document format used by web browsers. HTML can include text, images, links, and interactive content. HTML is widely supported across devices making it ideal for providing consistent desktop and mobile viewing experience.

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.