Free up your developers from building dynamic PDF documents

Use the full power of Microsoft Word to streamline and improve your documents quality

Version history (1).png
Code_2 Created with Sketch.
Microsoft Word

Design with your favourite editor

Code Created with Sketch.
Formats

Download it on PDF, PNG, HTML, TXT, SVG

Task Created with Sketch.
Fast

Render your templates in less than 150 milliseconds

Task Created with Sketch.
JSON

Our API merges your templates with JSON

Cog_Wheels Created with Sketch.
HTML

Embed dynamic HTML in your documents

Secure_Files Created with Sketch.
Privacy

We do not store the results in our system.

Try Docxmerge for free and see for yourself


We have examples where you can see the power of our API

Integrate Docxmerge


We believe that developers should focus their time on things that matter, not setting up yet another rendering library. Because we eliminate needless complexity and provide an up-to-date service, you can get up and running with Docxmerge in just a couple of minutes.

// step 1, install docxmerge
// npm install docxmerge

// Step 2, import libraries
const Docxmerge = require("docxmerge") // npm i docxmerge
const fs = require("fs")

// Step 3, execute
const docxmerge = new Docxmerge("API_KEY", "default")
docxmerge
  .renderUrl(
    "http://docxmerge.com/static/hello_world.docx",
    {
      logo: "https://docxmerge.com/assets/android-chrome-512x512.png",
      name: "James Bond",
    },
    "PDF",
  )
  .then(stream => stream.pipe(fs.createWriteStream("./hello_world_nodejs.pdf")))
  .catch(err => {
    console.error(err)
  })
# pip install docxmerge_sdk 
# https://pypi.org/project/docxmerge-sdk/

from docxmerge_sdk import Docxmerge
docxmerge = Docxmerge("API_KEY", "default", "https://api.docxmerge.com")

pdf = docxmerge.render_url(
    "http://docxmerge.com/static/hello_world.docx",
    {
        "logo": "https://docxmerge.com/assets/android-chrome-512x512.png",
        "name": "James Bond"
    },
    "PDF"
)

open("./example-hello-world.pdf", "wb").write(pdf)
<?php
require_once('vendor/autoload.php');

// the package can be downloaded in
// https://packagist.org/packages/docxmerge/docxmerge-php

use Docxmerge\Docxmerge;

$docxmerge = new Docxmerge("API_KEY", "default", "https://api.docxmerge.com");
$fp = fopen("./hello_world_php.pdf", "w");

$docxmerge->renderUrl(
    $fp,
    "http://docxmerge.com/static/hello_world.docx",
    array(
        "name" => "James bond",
        "logo" => "https://docxmerge.com/assets/android-chrome-512x512.png"
    ),
    "PDF"
);
package main
// package in github.com/docxmerge/docxmerge-go
import (
	"bytes"
	"github.com/docxmerge/docxmerge-go"
	"io/ioutil"
	"log"
)

func main() {
	data := map[string]interface{}{
		"name": "David Viejo",
		"logo": "https://docxmerge.com/assets/android-chrome-512x512.png",
	}
	docxmerge := docxmerge_go.NewDocxmerge(docxmerge_go.DocxmergeOptions{
		BaseUrl: "https://api.docxmerge.com",
		ApiKey:  "API_KEY",
		Tenant:  "default",
	})

	pdf, err := docxmerge.RenderUrl(
		"http://docxmerge.com/static/hello_world.docx",
		data,
		"PDF",
	)
	if err != nil {
		panic(err)
	}
	buf := new(bytes.Buffer)
	_, err = buf.ReadFrom(pdf)
	if err != nil {
		panic(err)
	}
	output := "./hello_world_golang.pdf"
	err = ioutil.WriteFile(output, buf.Bytes(), 0644)
	if err != nil {
		panic(err)
	}
	log.Printf("Check %s", output)
}
require "docxmerge"
# gem install docxmerge
# https://rubygems.org/gems/docxmerge
docxmerge = Docxmerge::Docxmerge.new("API_KEY", "default", "https://api.docxmerge.com")

response = docxmerge.render_url(
    "http://docxmerge.com/static/hello_world.docx", 
    {
        :logo => "https://docxmerge.com/assets/android-chrome-512x512.png",
        :name => "James Bond",
    },
    "PDF"
)

file_output = "./hello_world_ruby.pdf"

f = File.open(file_output, "wb")
f << response
f.close
puts "Check #{file_output}"
using System.Collections.Generic;
using System.IO;

// can be download in https://nuget.org/packages/Docxmerge/
// dotnet add package docxmerge

namespace DocxmergeExample
{
  class Program
  {
    static void Main(string[] args)
    {
      var docxmerge = new Docxmerge.Docxmerge("API_KEY", "default", "https://api.docxmerge.com");
      var output = docxmerge.RenderUrl(
          "http://docxmerge.com/static/hello_world.docx", 
          new Dictionary<string, object>{
             {"name", "James Bond"},
             {"logo", "https://docxmerge.com/assets/android-chrome-512x512.png"}
          },
          "PDF"
      ).Result;
      using (var ms = new MemoryStream())
      {
        output.CopyTo(ms);
        var outputFile = "./hello_world_dotnet.pdf";
        File.WriteAllBytes(outputFile, ms.ToArray());
        System.Console.WriteLine($"Check {outputFile}");
      }
    }
  }
}
package com.docxmerge.prueba_sdk;

import com.docxmerge.Docxmerge;

import java.io.FileOutputStream;
import java.util.HashMap;

public class DocxmergeExample {
    public static void main(String[] args) throws Exception {
        Docxmerge docxmerge = new Docxmerge("API_KEY", "default", "https://api.docxmerge.com");
        HashMap<String, Object> data = new HashMap<String, Object>();
        data.put("logo", "https://docxmerge.com/assets/android-chrome-512x512.png");
        data.put("name", "James Bond");

        byte[] bytes = docxmerge.renderUrl(
                "http://docxmerge.com/static/hello_world.docx",
                data,
                "PDF"
        );
        FileOutputStream outputStream = new FileOutputStream("hello_world.pdf");
        outputStream.write(bytes);
        outputStream.close();
    }
}
Plugin for Word

Design your templates without leaving your comfort zone

Download it
WordPlugin.png
Version control

Never lose any changed made.

Learn more
undraw_adjustments_p22m.png

What our customers say

Always looking for better ways to do things, innovate and help people achieve their goals.

Testimonials

Don't trust us. See what our clients are saying about our product.

John Bruce
BRPH

I’m extremely impressed! I’ve been researching off and on for the past two weeks for a solution that does exactly this. There’s been a few options than have been close, but nothing quite like this or as straightforward.

Pricing

Monthly fees

Plan Documents Max file size Fee
Free plan 50/M 1MB FREE
DocxM05 500/M 5MB 9 $
DocxM5K 5000/M 10MB 39 $
DocxM25k 25000/M 25MB 99 $
DocxM50K 50000/M 50MB 149 $
DocxM100K 100000/M 100MB 249 $
DocxM250K 250000/M 250MB 499 $

Need to convert millions of documents?

Do you have hundreds types of documents?

Do you want to migrate from an existing system?

Contact us and we will create a customized pricing plan tailored to your needs. If you have documents that you want to migrate, we will guide you in order to have 0 problems.

Contact

Send us a message

We'll get back to you in 24-48 h.

Subscribe for weekly documents

You will receive tutorials on new documents made with word