Non-Disclosure Agreement (NDA) Generator

Non-Disclosure Agreement (NDA) Generator

Create a customized confidentiality agreement in minutes.

Disclosing Party

Receiving Party

The obligations of this Agreement shall be in effect for a period of ${data.term} years from the Effective Date, unless terminated earlier by written agreement of the Parties.

5. Governing Law

This Agreement shall be governed by and construed in accordance with the laws of the State of ${data.state}, without regard to its conflict of laws principles.

6. Miscellaneous

This Agreement constitutes the entire understanding between the Parties concerning the subject matter hereof and supersedes all prior discussions, negotiations, and agreements. No amendment or modification of this Agreement shall be valid unless in writing and signed by both Parties.

DISCLOSING PARTY:

${data.dpName}

Signature

RECEIVING PARTY:

${data.rpName}

Signature

`; const generateNDAPreview = () => { const data = getNDAData(); inputs.output.innerHTML = generateNDAText(data); inputs.pdfButtonContainer.style.display = 'block'; }; const downloadPDF = () => { try { const { jsPDF } = window.jspdf; const doc = new jsPDF({ orientation: 'p', unit: 'mm', format: 'a4' }); const data = getNDAData(); const pageWidth = doc.internal.pageSize.getWidth(); const margin = 20; let cursorY = margin; const addText = (text, options = {}) => { const { size = 10, font = 'times', style = 'normal', align = 'justify', spaceAfter = 5 } = options; if (cursorY > doc.internal.pageSize.getHeight() - margin) { doc.addPage(); cursorY = margin; } doc.setFont(font, style); doc.setFontSize(size); const lines = doc.splitTextToSize(text, pageWidth - margin * 2); doc.text(lines, margin, cursorY, { align }); cursorY += (lines.length * (size * 0.35)) + spaceAfter; }; addText('NON-DISCLOSURE AGREEMENT', { size: 16, style: 'bold', align: 'center', spaceAfter: 10 }); addText(`This Non-Disclosure Agreement (the "Agreement") is entered into as of ${data.date} (the "Effective Date"), by and between:`, { size: 11 }); addText(`Disclosing Party: ${data.dpName}, with a primary address at ${data.dpAddress}.`, { size: 11, style: 'bold' }); addText(`Receiving Party: ${data.rpName}, with a primary address at ${data.rpAddress}.`, { size: 11, style: 'bold' }); addText('Hereinafter referred to individually as a "Party" and collectively as the "Parties".', { size: 11 }); addText('1. Purpose', { size: 12, style: 'bold', spaceAfter: 3 }); addText(`The Parties wish to engage in discussions related to the following purpose: ${data.purpose} (the "Purpose"). In the course of these discussions, the Disclosing Party may share certain confidential information with the Receiving Party.`, { size: 11 }); addText('2. Definition of Confidential Information', { size: 12, style: 'bold', spaceAfter: 3 }); addText('"Confidential Information" means any and all non-public information, including, without limitation, technical, financial, and business information, whether in oral, written, or electronic form, that is disclosed by the Disclosing Party to the Receiving Party. Confidential Information shall be identified as confidential at the time of disclosure.', { size: 11 }); addText('3. Obligations of Receiving Party', { size: 12, style: 'bold', spaceAfter: 3 }); addText('The Receiving Party agrees to: (a) hold the Confidential Information in strict confidence; (b) use the Confidential Information solely for the Purpose; and (c) not disclose such Confidential Information to any third party without the prior written consent of the Disclosing Party.', { size: 11 }); addText('4. Term', { size: 12, style: 'bold', spaceAfter: 3 }); addText(`The obligations of this Agreement shall be in effect for a period of ${data.term} years from the Effective Date, unless terminated earlier by written agreement of the Parties.`, { size: 11 }); addText('5. Governing Law', { size: 12, style: 'bold', spaceAfter: 3 }); addText(`This Agreement shall be governed by and construed in accordance with the laws of the State of ${data.state}, without regard to its conflict of laws principles.`, { size: 11 }); // Signature Block if (cursorY > doc.internal.pageSize.getHeight() - 80) { doc.addPage(); cursorY = margin; } cursorY += 20; let sigX1 = margin; let sigX2 = pageWidth / 2 + 10; let sigWidth = pageWidth / 2 - margin -10; addText('DISCLOSING PARTY:', { size: 11, style: 'bold', align: 'left', spaceAfter: 2 }); addText(data.dpName, { size: 11, align: 'left', spaceAfter: 20 }); doc.setLineWidth(0.5); doc.line(sigX1, cursorY, sigX1 + sigWidth, cursorY); cursorY += 5; addText('Signature', { size: 10, align: 'left' }); let sigY = cursorY - 32; // Reset Y for the second column addText('RECEIVING PARTY:', { size: 11, style: 'bold', align: 'left', spaceAfter: 2, x: sigX2, y: sigY-5 }); addText(data.rpName, { size: 11, align: 'left', spaceAfter: 20, x: sigX2, y: sigY }); doc.line(sigX2, cursorY, sigX2 + sigWidth, cursorY); addText('Signature', { size: 10, align: 'left', x: sigX2, y: cursorY + 5 }); doc.save(`NDA_${data.dpName}_${data.rpName}.pdf`); } catch (error) { console.error("Failed to generate PDF:", error); } }; inputs.downloadPdfButton.addEventListener('click', downloadPDF); updateUI(); });
Scroll to Top