npm i pdf-fill-form
Examples
Using promises
Read from file
1 2 3 4 5 6 7 8 |
<span class="pl-k">var</span> <span class="pl-s1">pdfFillForm</span> <span class="pl-c1">=</span> <span class="pl-en">require</span><span class="pl-kos">(</span><span class="pl-s">'pdf-fill-form'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">pdfFillForm</span><span class="pl-kos">.</span><span class="pl-en">read</span><span class="pl-kos">(</span><span class="pl-s">'test.pdf'</span><span class="pl-kos">)</span> <span class="pl-kos">.</span><span class="pl-en">then</span><span class="pl-kos">(</span><span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-s1">result</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">result</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-s1">err</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">err</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> |
Read from file buffer
1 2 3 4 5 6 7 8 |
<span class="pl-k">var</span> <span class="pl-s1">pdfFillForm</span> <span class="pl-c1">=</span> <span class="pl-en">require</span><span class="pl-kos">(</span><span class="pl-s">'pdf-fill-form'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">pdfFillForm</span><span class="pl-kos">.</span><span class="pl-en">readBuffer</span><span class="pl-kos">(</span><span class="pl-s1">fs</span><span class="pl-kos">.</span><span class="pl-en">readFileSync</span><span class="pl-kos">(</span><span class="pl-s">'test.pdf'</span><span class="pl-kos">)</span><span class="pl-kos">)</span> <span class="pl-kos">.</span><span class="pl-en">then</span><span class="pl-kos">(</span><span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-s1">result</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">result</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-s1">err</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">err</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> |
Write from file
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<span class="pl-k">var</span> <span class="pl-s1">pdfFillForm</span> <span class="pl-c1">=</span> <span class="pl-en">require</span><span class="pl-kos">(</span><span class="pl-s">'pdf-fill-form'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-k">var</span> <span class="pl-s1">fs</span> <span class="pl-c1">=</span> <span class="pl-en">require</span><span class="pl-kos">(</span><span class="pl-s">'fs'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">pdfFillForm</span><span class="pl-kos">.</span><span class="pl-en">write</span><span class="pl-kos">(</span><span class="pl-s">'test.pdf'</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-s">"myField"</span>: <span class="pl-s">"myField fill value"</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-s">"save"</span>: <span class="pl-s">"pdf"</span><span class="pl-kos">,</span> <span class="pl-s">'cores'</span>: <span class="pl-c1">4</span><span class="pl-kos">,</span> <span class="pl-s">'scale'</span>: <span class="pl-c1">0.2</span><span class="pl-kos">,</span> <span class="pl-s">'antialias'</span>: <span class="pl-c1">true</span> <span class="pl-kos">}</span> <span class="pl-kos">)</span> <span class="pl-kos">.</span><span class="pl-en">then</span><span class="pl-kos">(</span><span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-s1">result</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-s1">fs</span><span class="pl-kos">.</span><span class="pl-en">writeFile</span><span class="pl-kos">(</span><span class="pl-s">"test123.pdf"</span><span class="pl-kos">,</span> <span class="pl-s1">result</span><span class="pl-kos">,</span> <span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-s1">err</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">if</span><span class="pl-kos">(</span><span class="pl-s1">err</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">return</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">err</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">"The file was saved!"</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-s1">err</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">err</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> |
Write from file buffer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<span class="pl-k">var</span> <span class="pl-s1">pdfFillForm</span> <span class="pl-c1">=</span> <span class="pl-en">require</span><span class="pl-kos">(</span><span class="pl-s">'pdf-fill-form'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-k">var</span> <span class="pl-s1">fs</span> <span class="pl-c1">=</span> <span class="pl-en">require</span><span class="pl-kos">(</span><span class="pl-s">'fs'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">pdfFillForm</span><span class="pl-kos">.</span><span class="pl-en">writeBuffer</span><span class="pl-kos">(</span><span class="pl-s1">fs</span><span class="pl-kos">.</span><span class="pl-en">readFileSync</span><span class="pl-kos">(</span><span class="pl-s">'test.pdf'</span><span class="pl-kos">)</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-s">"myField"</span>: <span class="pl-s">"myField fill value"</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-s">"save"</span>: <span class="pl-s">"pdf"</span><span class="pl-kos">,</span> <span class="pl-s">'cores'</span>: <span class="pl-c1">4</span><span class="pl-kos">,</span> <span class="pl-s">'scale'</span>: <span class="pl-c1">0.2</span><span class="pl-kos">,</span> <span class="pl-s">'antialias'</span>: <span class="pl-c1">true</span> <span class="pl-kos">}</span> <span class="pl-kos">)</span> <span class="pl-kos">.</span><span class="pl-en">then</span><span class="pl-kos">(</span><span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-s1">result</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-s1">fs</span><span class="pl-kos">.</span><span class="pl-en">writeFile</span><span class="pl-kos">(</span><span class="pl-s">"test123.pdf"</span><span class="pl-kos">,</span> <span class="pl-s1">result</span><span class="pl-kos">,</span> <span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-s1">err</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">if</span><span class="pl-kos">(</span><span class="pl-s1">err</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-k">return</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">err</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">"The file was saved!"</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-s1">err</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">err</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> |
Using callbacks
To read all form fields:
1 2 3 4 |
<span class="pl-k">var</span> <span class="pl-s1">pdfFillForm</span> <span class="pl-c1">=</span> <span class="pl-en">require</span><span class="pl-kos">(</span><span class="pl-s">'pdf-fill-form'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-k">var</span> <span class="pl-s1">pdfFields</span> <span class="pl-c1">=</span> <span class="pl-s1">pdfFillForm</span><span class="pl-kos">.</span><span class="pl-en">readSync</span><span class="pl-kos">(</span><span class="pl-s">'test.pdf'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">pdfFields</span><span class="pl-kos">)</span><span class="pl-kos">;</span> |
To write form fields (synchronous) to PDF:
1 2 3 4 5 6 7 |
<span class="pl-k">var</span> <span class="pl-s1">pdfFillForm</span> <span class="pl-c1">=</span> <span class="pl-en">require</span><span class="pl-kos">(</span><span class="pl-s">'pdf-fill-form'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-k">var</span> <span class="pl-s1">fs</span> <span class="pl-c1">=</span> <span class="pl-en">require</span><span class="pl-kos">(</span><span class="pl-s">'fs'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-c">// Use here the field names you got from read</span> <span class="pl-k">var</span> <span class="pl-s1">pdf</span> <span class="pl-c1">=</span> <span class="pl-s1">pdfFillForm</span><span class="pl-kos">.</span><span class="pl-en">writeSync</span><span class="pl-kos">(</span><span class="pl-s">'test.pdf'</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-s">"myField"</span>: <span class="pl-s">"myField fill value"</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-s">"save"</span>: <span class="pl-s">"pdf"</span> <span class="pl-kos">}</span> <span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-s1">fs</span><span class="pl-kos">.</span><span class="pl-en">writeFileSync</span><span class="pl-kos">(</span><span class="pl-s">'filled_test.pdf'</span><span class="pl-kos">,</span> <span class="pl-s1">pdf</span><span class="pl-kos">)</span><span class="pl-kos">;</span> |
To write form fields (aynchronous) to PDF:
1 2 3 4 5 6 7 8 9 10 |
<span class="pl-k">var</span> <span class="pl-s1">pdfFillForm</span> <span class="pl-c1">=</span> <span class="pl-en">require</span><span class="pl-kos">(</span><span class="pl-s">'pdf-fill-form'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-k">var</span> <span class="pl-s1">fs</span> <span class="pl-c1">=</span> <span class="pl-en">require</span><span class="pl-kos">(</span><span class="pl-s">'fs'</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-c">// Use here the field names you got from read</span> <span class="pl-s1">pdfFillForm</span><span class="pl-kos">.</span><span class="pl-en">writeAsync</span><span class="pl-kos">(</span><span class="pl-s">'test.pdf'</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-s">"myField"</span>: <span class="pl-s">"myField fill value"</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-s">"save"</span>: <span class="pl-s">"pdf"</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-s1">err</span><span class="pl-kos">,</span> <span class="pl-s1">pdf</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-s1">fs</span><span class="pl-kos">.</span><span class="pl-en">writeFile</span><span class="pl-kos">(</span><span class="pl-s">"filled_test.pdf"</span><span class="pl-kos">,</span> <span class="pl-s1">pdf</span><span class="pl-kos">,</span> <span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-s1">err</span><span class="pl-kos">)</span><span class="pl-kos">{</span><span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-kos">}</span> <span class="pl-kos">)</span><span class="pl-kos">;</span> |
Usage
Simply call transform
with the PDF file contents and the fields.
1 2 3 4 5 6 7 8 9 10 |
<span class="pl-c"><!-- download from https://raw.githubusercontent.com/phihag/pdfform.js/dist/dist/pdfform.minipdf.dist.js --></span> <span class="pl-kos"><</span><span class="pl-ent">script</span> <span class="pl-c1">src</span>="<span class="pl-s">downloaded/pdfform.minipdf.dist.js</span>"<span class="pl-kos">></span><span class="pl-kos"></</span><span class="pl-ent">script</span><span class="pl-kos">></span> <span class="pl-kos"><</span><span class="pl-ent">script</span><span class="pl-kos">></span> <span class="pl-k">var</span> <span class="pl-s1">pdf_buf</span> <span class="pl-c1">=</span> ...<span class="pl-kos">;</span> <span class="pl-c">// load PDF into an ArrayBuffer, for example via XHR (see demo)</span> <span class="pl-k">var</span> <span class="pl-s1">fields</span> <span class="pl-c1">=</span> <span class="pl-kos">{</span> <span class="pl-s">'fieldname'</span>: <span class="pl-kos">[</span><span class="pl-s">'value for fieldname[0]'</span><span class="pl-kos">,</span> <span class="pl-s">'value for fieldname[1]'</span><span class="pl-kos">]</span><span class="pl-kos">,</span> <span class="pl-kos">}</span><span class="pl-kos">;</span> <span class="pl-k">var</span> <span class="pl-s1">out_buf</span> <span class="pl-c1">=</span> <span class="pl-en">pdfform</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">transform</span><span class="pl-kos">(</span><span class="pl-s1">pdf_buf</span><span class="pl-kos">,</span> <span class="pl-s1">fields</span><span class="pl-kos">)</span><span class="pl-kos">;</span> <span class="pl-c">// Do something with the resulting PDF file in out_buf</span> <span class="pl-kos"></</span><span class="pl-ent">script</span><span class="pl-kos">></span> |