<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>nodejs conversion on Document Processing REST APIs | GroupDocs Cloud</title>
    <link>https://blog-qa.groupdocs.cloud/tag/nodejs-conversion/</link>
    <description>Recent content in nodejs conversion on Document Processing REST APIs | GroupDocs Cloud</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Mon, 03 Aug 2026 10:51:03 +0000</lastBuildDate><atom:link href="https://blog-qa.groupdocs.cloud/tag/nodejs-conversion/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>PDF to DOCX Conversion in Node.JS</title>
      <link>https://blog-qa.groupdocs.cloud/conversion/pdf-to-docx-conversion-in-nodejs/</link>
      <pubDate>Mon, 03 Aug 2026 10:51:03 +0000</pubDate>
      
      <guid>https://blog-qa.groupdocs.cloud/conversion/pdf-to-docx-conversion-in-nodejs/</guid>
      <description>Convert PDF to DOCX in Node.JS with GroupDocs.Conversion Cloud SDK. This guide shows async code, cURL REST calls, installation steps, and best-practice tips.</description>
      <content:encoded><![CDATA[<p>Converting <a href="https://docs.fileformat.com/pdf">PDF</a> files to <a href="https://docs.fileformat.com/word-processing/docx/">DOCX</a> format is a frequent requirement when building document‑centric applications, especially when you need editable Word output. <a href="https://products.groupdocs.cloud/conversion/nodejs/">GroupDocs.Conversion Cloud SDK for Node.js</a> provides a robust API that makes this task simple and scalable. In this guide you will see a complete asynchronous code sample, learn how to achieve the same result with cURL REST calls, set up the SDK, and apply best‑practice recommendations for reliable conversions.</p>
<h2 id="complete-code-example-async-pdf-to-docx-conversion-in-nodejs">Complete Code Example: Async PDF to DOCX Conversion in Node.JS</h2>
<p>This example demonstrates how to perform an asynchronous PDF to DOCX conversion using GroupDocs.Conversion Cloud SDK for Node.js.</p>
<!--[COMPLETE_CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#75715e">// PDF to DOCX conversion using GroupDocs.Conversion Cloud SDK for Node.js
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">GroupDocsConversionCloud</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">require</span>(<span style="color:#e6db74">&#39;groupdocs-conversion-cloud&#39;</span>);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">path</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">require</span>(<span style="color:#e6db74">&#39;path&#39;</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// -------------------- Configuration --------------------
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">CLIENT_ID</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">process</span>.<span style="color:#a6e22e">env</span>.<span style="color:#a6e22e">GROUPDOCS_CLIENT_ID</span> <span style="color:#f92672">||</span> <span style="color:#e6db74">&#39;YOUR_CLIENT_ID&#39;</span>;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">CLIENT_SECRET</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">process</span>.<span style="color:#a6e22e">env</span>.<span style="color:#a6e22e">GROUPDOCS_CLIENT_SECRET</span> <span style="color:#f92672">||</span> <span style="color:#e6db74">&#39;YOUR_CLIENT_SECRET&#39;</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Initialize API client
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">apiInstance</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsConversionCloud</span>.<span style="color:#a6e22e">ConversionApi</span>();
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">apiInstance</span>.<span style="color:#a6e22e">apiClient</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsConversionCloud</span>.<span style="color:#a6e22e">ApiClient</span>();
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">apiInstance</span>.<span style="color:#a6e22e">apiClient</span>.<span style="color:#a6e22e">basePath</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&#39;https://api.groupdocs.cloud&#39;</span>;
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">apiInstance</span>.<span style="color:#a6e22e">apiClient</span>.<span style="color:#a6e22e">authentications</span>[<span style="color:#e6db74">&#39;JWT&#39;</span>].<span style="color:#a6e22e">clientId</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">CLIENT_ID</span>;
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">apiInstance</span>.<span style="color:#a6e22e">apiClient</span>.<span style="color:#a6e22e">authentications</span>[<span style="color:#e6db74">&#39;JWT&#39;</span>].<span style="color:#a6e22e">clientSecret</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">CLIENT_SECRET</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// -------------------- Conversion Logic --------------------
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span><span style="color:#66d9ef">async</span> <span style="color:#66d9ef">function</span> <span style="color:#a6e22e">convertPdfToDocx</span>() {
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">try</span> {
</span></span><span style="display:flex;"><span>        <span style="color:#75715e">// Input file information (must already be uploaded to GroupDocs Cloud storage)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        <span style="color:#66d9ef">const</span> <span style="color:#a6e22e">inputFileInfo</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsConversionCloud</span>.<span style="color:#a6e22e">FileInfo</span>();
</span></span><span style="display:flex;"><span>        <span style="color:#a6e22e">inputFileInfo</span>.<span style="color:#a6e22e">filePath</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">path</span>.<span style="color:#a6e22e">normalize</span>(<span style="color:#e6db74">&#39;input.pdf&#39;</span>); <span style="color:#75715e">// generic path in cloud storage
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span>        <span style="color:#75715e">// DOCX specific conversion options (optional, shown for demonstration)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        <span style="color:#66d9ef">const</span> <span style="color:#a6e22e">docxOptions</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsConversionCloud</span>.<span style="color:#a6e22e">DocxConvertOptions</span>();
</span></span><span style="display:flex;"><span>        <span style="color:#a6e22e">docxOptions</span>.<span style="color:#a6e22e">preserveOriginalFormatting</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">true</span>; <span style="color:#75715e">// keep original PDF layout as much as possible
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        <span style="color:#a6e22e">docxOptions</span>.<span style="color:#a6e22e">password</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">null</span>; <span style="color:#75715e">// if PDF is password protected, set it here
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span>        <span style="color:#75715e">// Build conversion request
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        <span style="color:#66d9ef">const</span> <span style="color:#a6e22e">convertRequest</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsConversionCloud</span>.<span style="color:#a6e22e">ConvertDocumentRequest</span>();
</span></span><span style="display:flex;"><span>        <span style="color:#a6e22e">convertRequest</span>.<span style="color:#a6e22e">format</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&#39;docx&#39;</span>;
</span></span><span style="display:flex;"><span>        <span style="color:#a6e22e">convertRequest</span>.<span style="color:#a6e22e">fileInfo</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">inputFileInfo</span>;
</span></span><span style="display:flex;"><span>        <span style="color:#a6e22e">convertRequest</span>.<span style="color:#a6e22e">outputPath</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">path</span>.<span style="color:#a6e22e">normalize</span>(<span style="color:#e6db74">&#39;output.docx&#39;</span>); <span style="color:#75715e">// result will be stored in cloud storage
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        <span style="color:#a6e22e">convertRequest</span>.<span style="color:#a6e22e">options</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">docxOptions</span>; <span style="color:#75715e">// attach format‑specific options
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span>        <span style="color:#75715e">// Perform conversion (async)
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        <span style="color:#66d9ef">const</span> <span style="color:#a6e22e">conversionResult</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">await</span> <span style="color:#a6e22e">apiInstance</span>.<span style="color:#a6e22e">convertDocument</span>(<span style="color:#a6e22e">convertRequest</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>        <span style="color:#75715e">// conversionResult contains the path of the generated file and other metadata
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        <span style="color:#a6e22e">console</span>.<span style="color:#a6e22e">log</span>(<span style="color:#e6db74">&#39;Conversion succeeded.&#39;</span>);
</span></span><span style="display:flex;"><span>        <span style="color:#a6e22e">console</span>.<span style="color:#a6e22e">log</span>(<span style="color:#e6db74">&#39;Output file path:&#39;</span>, <span style="color:#a6e22e">conversionResult</span>.<span style="color:#a6e22e">path</span>);
</span></span><span style="display:flex;"><span>        <span style="color:#a6e22e">console</span>.<span style="color:#a6e22e">log</span>(<span style="color:#e6db74">&#39;File size (bytes):&#39;</span>, <span style="color:#a6e22e">conversionResult</span>.<span style="color:#a6e22e">size</span>);
</span></span><span style="display:flex;"><span>    } <span style="color:#66d9ef">catch</span> (<span style="color:#a6e22e">error</span>) {
</span></span><span style="display:flex;"><span>        <span style="color:#75715e">// Detailed error handling
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        <span style="color:#66d9ef">if</span> (<span style="color:#a6e22e">error</span>.<span style="color:#a6e22e">response</span> <span style="color:#f92672">&amp;&amp;</span> <span style="color:#a6e22e">error</span>.<span style="color:#a6e22e">response</span>.<span style="color:#a6e22e">body</span>) {
</span></span><span style="display:flex;"><span>            <span style="color:#a6e22e">console</span>.<span style="color:#a6e22e">error</span>(<span style="color:#e6db74">&#39;API error:&#39;</span>, <span style="color:#a6e22e">error</span>.<span style="color:#a6e22e">response</span>.<span style="color:#a6e22e">body</span>);
</span></span><span style="display:flex;"><span>        } <span style="color:#66d9ef">else</span> {
</span></span><span style="display:flex;"><span>            <span style="color:#a6e22e">console</span>.<span style="color:#a6e22e">error</span>(<span style="color:#e6db74">&#39;Unexpected error:&#39;</span>, <span style="color:#a6e22e">error</span>.<span style="color:#a6e22e">message</span>);
</span></span><span style="display:flex;"><span>        }
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// -------------------- Execution --------------------
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>(<span style="color:#66d9ef">async</span> () =&gt; {
</span></span><span style="display:flex;"><span>    <span style="color:#75715e">// Optional: set a timeout to avoid hanging indefinitely
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>    <span style="color:#66d9ef">const</span> <span style="color:#a6e22e">timeoutMs</span> <span style="color:#f92672">=</span> <span style="color:#ae81ff">300000</span>; <span style="color:#75715e">// 5 minutes
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>    <span style="color:#66d9ef">const</span> <span style="color:#a6e22e">timeout</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">setTimeout</span>(() =&gt; {
</span></span><span style="display:flex;"><span>        <span style="color:#a6e22e">console</span>.<span style="color:#a6e22e">error</span>(<span style="color:#e6db74">&#39;Conversion timed out after&#39;</span>, <span style="color:#a6e22e">timeoutMs</span> <span style="color:#f92672">/</span> <span style="color:#ae81ff">1000</span>, <span style="color:#e6db74">&#39;seconds&#39;</span>);
</span></span><span style="display:flex;"><span>        <span style="color:#a6e22e">process</span>.<span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">1</span>);
</span></span><span style="display:flex;"><span>    }, <span style="color:#a6e22e">timeoutMs</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">await</span> <span style="color:#a6e22e">convertPdfToDocx</span>();
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    <span style="color:#a6e22e">clearTimeout</span>(<span style="color:#a6e22e">timeout</span>);
</span></span><span style="display:flex;"><span>    <span style="color:#75715e">// Graceful shutdown
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>    <span style="color:#a6e22e">process</span>.<span style="color:#a6e22e">exit</span>(<span style="color:#ae81ff">0</span>);
</span></span><span style="display:flex;"><span>})();
</span></span></code></pre></div><!--[COMPLETE_CODE_SNIPPET_END]-->
<blockquote>
<p><strong>Note:</strong> This code example demonstrates the core functionality. Before using it in your project, make sure to update the file paths (<code>input.pdf</code>, <code>output.docx</code>, etc.) to match your actual locations, verify that all required dependencies are installed, and test thoroughly in your development environment. If you encounter any issues, please refer to the <a href="https://docs.groupdocs.cloud/conversion/">official documentation</a> or reach out to the <a href="https://forum.groupdocs.cloud/c/conversion/11">support team</a> for assistance.</p>
</blockquote>
<h2 id="convert-documents-using-curl-and-the-rest-api">Convert Documents Using cURL and the REST API</h2>
<p>You can achieve the same PDF to DOCX conversion without writing code by calling the GroupDocs.Conversion Cloud REST endpoints directly. The steps below show how to obtain an access token, upload a PDF, start the conversion, and download the resulting DOCX file.</p>
<ol>
<li><strong>Authenticate and get an access token</strong><br>
Replace <code>YOUR_CLIENT_ID</code> and <code>YOUR_CLIENT_SECRET</code> with your credentials.</li>
</ol>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v1.0/oauth2/token&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/json&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -d <span style="color:#e6db74">&#39;{
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;grant_type&#34;:&#34;client_credentials&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;client_id&#34;:&#34;YOUR_CLIENT_ID&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;client_secret&#34;:&#34;YOUR_CLIENT_SECRET&#34;
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">         }&#39;</span>
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<p>The response contains <code>access_token</code> that you will use in subsequent calls.</p>
<ol start="2">
<li><strong>Upload the source PDF</strong></li>
</ol>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X PUT <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v1.0/storage/file/input.pdf&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/pdf&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     --data-binary @./local/input.pdf
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<ol start="3">
<li><strong>Execute the conversion</strong></li>
</ol>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v1.0/conversion/convert&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/json&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -d <span style="color:#e6db74">&#39;{
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;format&#34;:&#34;docx&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;fileInfo&#34;:{&#34;filePath&#34;:&#34;input.pdf&#34;},
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;outputPath&#34;:&#34;output.docx&#34;,
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">           &#34;options&#34;:{&#34;preserveOriginalFormatting&#34;:true}
</span></span></span><span style="display:flex;"><span><span style="color:#e6db74">         }&#39;</span>
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<p>The response returns the path of the generated DOCX file.</p>
<ol start="4">
<li><strong>Download the converted DOCX</strong></li>
</ol>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>curl -X GET <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v1.0/storage/file/output.docx&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -o ./local/output.docx
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<p>For more details on request payloads and additional options, see the <a href="https://docs.groupdocs.cloud/conversion/">official API documentation</a>.</p>
<h2 id="breaking-down-pdf-to-docx-conversion-in-nodejs">Breaking Down PDF to DOCX Conversion in Node.JS</h2>
<p>Below is a concise walkthrough of the key parts of the asynchronous code sample.</p>
<ol>
<li>
<p><strong>Import and configure the client</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">GroupDocsConversionCloud</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">require</span>(<span style="color:#e6db74">&#39;groupdocs-conversion-cloud&#39;</span>);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">apiInstance</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsConversionCloud</span>.<span style="color:#a6e22e">ConversionApi</span>();
</span></span></code></pre></div><p>The <code>ConversionApi</code> class (<a href="https://reference.groupdocs.cloud/conversion/">API reference</a>) is the entry point for all conversion operations.</p>
</li>
<li>
<p><strong>Set authentication credentials</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#a6e22e">apiInstance</span>.<span style="color:#a6e22e">apiClient</span>.<span style="color:#a6e22e">authentications</span>[<span style="color:#e6db74">&#39;JWT&#39;</span>].<span style="color:#a6e22e">clientId</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">CLIENT_ID</span>;
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">apiInstance</span>.<span style="color:#a6e22e">apiClient</span>.<span style="color:#a6e22e">authentications</span>[<span style="color:#e6db74">&#39;JWT&#39;</span>].<span style="color:#a6e22e">clientSecret</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">CLIENT_SECRET</span>;
</span></span></code></pre></div><p>JWT authentication secures each request to the cloud service.</p>
</li>
<li>
<p><strong>Prepare the input file information</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">inputFileInfo</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsConversionCloud</span>.<span style="color:#a6e22e">FileInfo</span>();
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">inputFileInfo</span>.<span style="color:#a6e22e">filePath</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">path</span>.<span style="color:#a6e22e">normalize</span>(<span style="color:#e6db74">&#39;input.pdf&#39;</span>);
</span></span></code></pre></div><p><code>FileInfo</code> tells the API where the source PDF resides in GroupDocs Cloud storage.</p>
</li>
<li>
<p><strong>Configure DOCX‑specific options</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">docxOptions</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsConversionCloud</span>.<span style="color:#a6e22e">DocxConvertOptions</span>();
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">docxOptions</span>.<span style="color:#a6e22e">preserveOriginalFormatting</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">true</span>;
</span></span></code></pre></div><p><code>DocxConvertOptions</code> lets you keep the original layout and handle passwords if needed.</p>
</li>
<li>
<p><strong>Create and send the conversion request</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">convertRequest</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsConversionCloud</span>.<span style="color:#a6e22e">ConvertDocumentRequest</span>();
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">convertRequest</span>.<span style="color:#a6e22e">format</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&#39;docx&#39;</span>;
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">convertRequest</span>.<span style="color:#a6e22e">fileInfo</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">inputFileInfo</span>;
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">convertRequest</span>.<span style="color:#a6e22e">outputPath</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">path</span>.<span style="color:#a6e22e">normalize</span>(<span style="color:#e6db74">&#39;output.docx&#39;</span>);
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">convertRequest</span>.<span style="color:#a6e22e">options</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">docxOptions</span>;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">conversionResult</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">await</span> <span style="color:#a6e22e">apiInstance</span>.<span style="color:#a6e22e">convertDocument</span>(<span style="color:#a6e22e">convertRequest</span>);
</span></span></code></pre></div><p>The <code>convertDocument</code> method performs the actual conversion and returns metadata such as the output path and file size.</p>
</li>
</ol>
<h2 id="installing-and-configuring-groupdocsconversion-cloud-sdk-for-nodejs">Installing and Configuring GroupDocs.Conversion Cloud SDK for Node.JS</h2>
<ol>
<li><strong>Install the package</strong></li>
</ol>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npm install groupdocs-conversion-cloud
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<p>The package is available from the public npm registry. See the <a href="https://releases.groupdocs.cloud/conversion/nodejs/">download page</a> for version details.</p>
<ol start="2">
<li>
<p><strong>Prerequisites</strong></p>
<ul>
<li>Node.js 12 or higher.</li>
<li>A GroupDocs Cloud account with client ID and client secret.</li>
</ul>
</li>
<li>
<p><strong>Initialize the SDK in your project</strong> (excerpt from the full example)</p>
</li>
</ol>
<!--[CODE_SNIPPET_START]-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">GroupDocsConversionCloud</span> <span style="color:#f92672">=</span> <span style="color:#a6e22e">require</span>(<span style="color:#e6db74">&#39;groupdocs-conversion-cloud&#39;</span>);
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">const</span> <span style="color:#a6e22e">apiInstance</span> <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> <span style="color:#a6e22e">GroupDocsConversionCloud</span>.<span style="color:#a6e22e">ConversionApi</span>();
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">apiInstance</span>.<span style="color:#a6e22e">apiClient</span>.<span style="color:#a6e22e">basePath</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&#39;https://api.groupdocs.cloud&#39;</span>;
</span></span></code></pre></div><!--[CODE_SNIPPET_END]-->
<p>Adjust the <code>basePath</code> if you use a regional endpoint.</p>
<h2 id="best-practices-for-highperformance-document-conversion">Best Practices for High‑Performance Document Conversion</h2>
<ul>
<li><strong>Reuse the API client</strong> instead of creating a new instance for each conversion; this reduces authentication overhead.</li>
<li><strong>Enable streaming uploads</strong> for large PDFs to avoid loading the entire file into memory.</li>
<li><strong>Set a reasonable timeout</strong> (e.g., 5 minutes) to prevent hanging jobs while still allowing complex documents to finish.</li>
<li><strong>Preserve original formatting only when needed</strong>; disabling it can speed up conversion for simple text‑only PDFs.</li>
<li><strong>Monitor API usage limits</strong> in your GroupDocs account dashboard to avoid throttling during batch operations.</li>
</ul>
<h2 id="conclusion">Conclusion</h2>
<p><a href="https://products.groupdocs.cloud/conversion/nodejs/">GroupDocs.Conversion Cloud SDK for Node.js</a> makes PDF to DOCX conversion straightforward, whether you prefer a full‑featured library or direct REST calls with cURL. By following the async code sample, configuring the client correctly, and applying the performance tips above, you can integrate reliable document conversion into any Node.JS service. Remember to acquire a proper license for production use; pricing details are available on the product page, and a temporary license can be obtained from the <a href="https://purchase.groupdocs.cloud/temporary-license/">temporary license page</a> for evaluation.</p>
<h2 id="faqs">FAQs</h2>
<ul>
<li>
<p><strong>How does PDF to DOCX conversion in Node.JS handle complex layouts?</strong><br>
The SDK attempts to preserve original formatting by default. You can toggle <code>preserveOriginalFormatting</code> in <code>DocxConvertOptions</code> to trade fidelity for speed. See the <a href="https://reference.groupdocs.cloud/conversion/">API reference</a> for all options.</p>
</li>
<li>
<p><strong>What are the limits on file size for PDF to DOCX conversion?</strong><br>
The cloud service accepts files up to 200 MB for free accounts; larger files require an upgraded plan. Uploads are streamed, so memory usage on your server stays low.</p>
</li>
<li>
<p><strong>Can I convert multiple PDFs to DOCX in a single request?</strong><br>
The API processes one document per request, but you can loop over a list of files in Node.JS and run conversions in parallel, respecting your account&rsquo;s concurrency limits.</p>
</li>
<li>
<p><strong>Is there a way to test the conversion locally without a paid license?</strong><br>
Yes, you can request a temporary evaluation license from the <a href="https://purchase.groupdocs.cloud/temporary-license/">temporary license page</a>. This provides full functionality for development and testing.</p>
</li>
</ul>
<h2 id="read-more">Read More</h2>
<ul>
<li><a href="https://blog.groupdocs.cloud/conversion/step-by-step-csv-to-pdf-conversion-example-in-nodejs/">Step-by-Step CSV to PDF Conversion Example in Node.JS</a></li>
<li><a href="https://blog.groupdocs.cloud/conversion/convert-pdf-to-doc-with-nodejs/">Convert PDF to Word in Node.js | PDF to DOCX Online with REST API</a></li>
<li><a href="https://blog.groupdocs.cloud/conversion/convert-doc-to-pdf-with-nodejs/">Convert Word to PDF in Node.js | DOC/DOCX to PDF Online with REST API</a></li>
</ul>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
