PDF templates / Business Letter

Business Letter

Formal business letter on A4 with sender letterhead block, dated recipient address, subject line, justified body paragraphs, handwritten-style closing and signature block, plus cc/enclosures footer. Suitable for offers, notices and official correspondence.

First page of the Business Letter template, rendered with its sample data
letter-business.pdfpage 1 of 2

DSL source

The whole template. Learn the language in the template DSL guide.

js
const template = doc({ size: "A4", title: "Letter — {{reference}}", padding: [40, 50, 40, 50] },
  // Sender block (letterhead)
  col(
    r(
      col("70%",
        s({ "font-size": 14, "font-weight": "bold", color: "#1a3a5c" }, "{{sender.org}}"),
        s({ "font-size": 9, color: "#555555", "margin": [2, 0, 0, 0] }, "{{sender.address1}} • {{sender.address2}}"),
        s({ "font-size": 9, color: "#555555" }, "{{sender.phone}} • {{sender.email}}"),
      ),
      col("30%",
        s({ "font-size": 9, color: "#555555", align: "right" }, "{{date}}"),
        s({ "font-size": 9, color: "#555555", align: "right", "margin": [2, 0, 0, 0] }, "Ref: {{reference}}"),
      ),
    ),
  ),
  hr(10, "#1a3a5c"),

  // Recipient
  col({ "margin": [4, 0, 0, 0] },
    s({ "font-size": 10, "font-weight": "bold", color: "#1a3a5c" }, "{{recipient.name}}"),
    when("recipient.title", s({ "font-size": 10, color: "#333333" }, "{{recipient.title}}")),
    when("recipient.org", s({ "font-size": 10, color: "#333333" }, "{{recipient.org}}")),
    s({ "font-size": 10, color: "#333333" }, "{{recipient.address1}}"),
    when("recipient.address2", s({ "font-size": 10, color: "#333333" }, "{{recipient.address2}}")),
    when("recipient.address3", s({ "font-size": 10, color: "#333333" }, "{{recipient.address3}}")),
  ),

  gap(12),

  // Subject
  r({ "background-color": "#f2f5f9", padding: [6, 10, 6, 10], border: "1 solid #d4dde8" },
    col("15%", s({ "font-size": 9, "font-weight": "bold", color: "#1a3a5c" }, "SUBJECT")),
    col("85%", s({ "font-size": 10, "font-weight": "bold", color: "#1a3a5c" }, "{{subject}}")),
  ),

  gap(10),

  // Salutation
  s({ "font-size": 11, color: "#000000" }, "{{salutation}},"),
  gap(6),

  // Body paragraphs
  each("paragraph in body",
    s({ "font-size": 10.5, color: "#222222", "line-height": 1.45, "margin": [0, 0, 8, 0] }, "{{paragraph}}"),
  ),

  gap(6),

  // Closing
  s({ "font-size": 11, color: "#000000" }, "{{closing}},"),
  gap(32),

  // Signature
  col(
    s({ "font-size": 10.5, "font-weight": "bold", color: "#1a3a5c" }, "{{signatureName}}"),
    s({ "font-size": 9.5, color: "#555555" }, "{{signatureTitle}}"),
    s({ "font-size": 9.5, color: "#555555" }, "{{signatureOrg}}"),
  ),

  gap(14),
  hr(0, "#d4dde8"),
  gap(6),

  // CC and enclosures
  r(
    col("50%",
      s({ "font-size": 9, "font-weight": "bold", color: "#1a3a5c", "margin": [0, 0, 3, 0] }, "CC"),
      each("name in cc",
        s({ "font-size": 9, color: "#333333", "margin": [0, 0, 1, 0] }, "• {{name}}"),
      ),
    ),
    col("50%",
      s({ "font-size": 9, "font-weight": "bold", color: "#1a3a5c", "margin": [0, 0, 3, 0] }, "ENCLOSURES"),
      each("enc in enclosures",
        s({ "font-size": 9, color: "#333333", "margin": [0, 0, 1, 0] }, "• {{enc}}"),
      ),
    ),
  ),

  ftrPages("{{sender.org}} — Ref {{reference}}"),
);

const sampleData = {
  date: "20 April 2026",
  reference: "HR-2026-1184",
  subject: "Offer of Employment — Senior Product Designer",
  salutation: "Dear Ms. Patel",
  body: [
    "It is with great pleasure that I extend this formal offer of employment for the position of Senior Product Designer at Northline Studios, reporting to the Head of Design. Your portfolio review, technical interview, and conversations with the design leadership team were overwhelmingly positive, and we are excited about the perspective you will bring to our growing team.",
    "Your starting annual salary will be $142,000, paid semi-monthly, along with a signing bonus of $8,000 payable after ninety days of continuous employment. You will also be eligible to participate in our employee stock option plan, comprehensive health and dental benefits, a 4% matched retirement contribution, and our annual professional development stipend of $2,500.",
    "Your proposed start date is Monday, 18 May 2026, at our Seattle office, with the option to work remotely up to two days per week. Please review the enclosed offer packet, which includes the full employment agreement, benefits summary, and relocation assistance details.",
    "To accept this offer, please sign and return the employment agreement along with the completed I-9 documentation no later than Friday, 1 May 2026. If any of the terms need clarification or adjustment, please don't hesitate to reach out to me directly — we want this transition to work well for you.",
    "We are genuinely looking forward to welcoming you to the team. Congratulations again, and please let me know if there is anything I can do to make the next few weeks smoother.",
  ],
  closing: "Warm regards",
  signatureName: "Eleanor M. Whitfield",
  signatureTitle: "Chief People Officer",
  signatureOrg: "Northline Studios, Inc.",
  sender: {
    name: "Eleanor M. Whitfield",
    title: "Chief People Officer",
    org: "Northline Studios, Inc.",
    address1: "1100 Fifth Avenue, Suite 820",
    address2: "Seattle, WA 98101",
    phone: "(206) 555-0142",
    email: "eleanor.whitfield@northlinestudios.com",
  },
  recipient: {
    name: "Ms. Anika Patel",
    title: "Senior Product Designer (candidate)",
    org: "",
    address1: "742 Evergreen Terrace",
    address2: "Apartment 4B",
    address3: "Portland, OR 97209",
  },
  cc: [
    "Marcus Chen, Head of Design",
    "Priya Raman, Design Operations",
  ],
  enclosures: [
    "Employment Agreement (12 pages)",
    "Benefits Summary 2026",
    "Relocation Assistance Policy",
    "Form I-9 and W-4",
  ],
};

Sample data

json
{
  "date": "20 April 2026",
  "reference": "HR-2026-1184",
  "subject": "Offer of Employment — Senior Product Designer",
  "salutation": "Dear Ms. Patel",
  "body": [
    "It is with great pleasure that I extend this formal offer of employment for the position of Senior Product Designer at Northline Studios, reporting to the Head of Design. Your portfolio review, technical interview, and conversations with the design leadership team were overwhelmingly positive, and we are excited about the perspective you will bring to our growing team.",
    "Your starting annual salary will be $142,000, paid semi-monthly, along with a signing bonus of $8,000 payable after ninety days of continuous employment. You will also be eligible to participate in our employee stock option plan, comprehensive health and dental benefits, a 4% matched retirement contribution, and our annual professional development stipend of $2,500.",
    "Your proposed start date is Monday, 18 May 2026, at our Seattle office, with the option to work remotely up to two days per week. Please review the enclosed offer packet, which includes the full employment agreement, benefits summary, and relocation assistance details.",
    "To accept this offer, please sign and return the employment agreement along with the completed I-9 documentation no later than Friday, 1 May 2026. If any of the terms need clarification or adjustment, please don't hesitate to reach out to me directly — we want this transition to work well for you.",
    "We are genuinely looking forward to welcoming you to the team. Congratulations again, and please let me know if there is anything I can do to make the next few weeks smoother."
  ],
  "closing": "Warm regards",
  "signatureName": "Eleanor M. Whitfield",
  "signatureTitle": "Chief People Officer",
  "signatureOrg": "Northline Studios, Inc.",
  "sender": {
    "name": "Eleanor M. Whitfield",
    "title": "Chief People Officer",
    "org": "Northline Studios, Inc.",
    "address1": "1100 Fifth Avenue, Suite 820",
    "address2": "Seattle, WA 98101",
    "phone": "(206) 555-0142",
    "email": "eleanor.whitfield@northlinestudios.com"
  },
  "recipient": {
    "name": "Ms. Anika Patel",
    "title": "Senior Product Designer (candidate)",
    "org": "",
    "address1": "742 Evergreen Terrace",
    "address2": "Apartment 4B",
    "address3": "Portland, OR 97209"
  },
  "cc": [
    "Marcus Chen, Head of Design",
    "Priya Raman, Design Operations"
  ],
  "enclosures": [
    "Employment Agreement (12 pages)",
    "Benefits Summary 2026",
    "Relocation Assistance Policy",
    "Form I-9 and W-4"
  ]
}

Render it with your data

Any API key can render this template by its ID. This call uses the sample data; add a data object to use your own. See the API reference.

bash
curl -X POST https://makespdf.com/api/v1/render \
  -H "Authorization: Bearer $MAKESPDF_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"templateId": "letter-business"}' \
  -o output.pdf