Course 2.6 · Curriculum 2026.1
Generating documents: PDF engines that do not fall over
Produce a quote, an invoice or a statutory declaration that renders correctly every time. Nineteen engines in production taught as one pattern.
- Estimated effort
- 4 hr
- Lessons
- 31
- Modules
- 6
- Material
- 4 hr
Estimated effort is the sum of the lesson and lab times in this version of the course. It is not video runtime, which is lower.
Canadian dollars. One learner, lifetime access to this course version. Tax extra.
1 lesson free to preview
This course does not issue a certificate on its own. It counts toward the paths listed below, and those do.
01What you will learn
7 capabilities, stated as things you can do
Each one is what you should be able to do at the end, not what the course covers. If an outcome is not testable, it is not an outcome.
- Choose between Visualforce rendering, a component-based renderer and an external service.
- Build a document template whose layout survives a long name and a 40-line table.
- Handle page breaks, repeating headers and totals that must appear on the last page.
- Stay inside the view state and heap limits when a document has hundreds of lines.
- Store, version and re-issue a generated document without regenerating the bytes.
- Attach a document to a record and control who can see it.
- Test a generated document by asserting on its content, not by opening it.
02Curriculum
6 modules, 31 lessons
Every lesson shows its length and its type. A SCORM lesson looks like any other lesson, which is the point of ingesting packages rather than linking out to them.
6 modules · 31 lessons · 4 hr of material
Three approaches, three cost profiles. Most teams pick the external service first and discover they did not need it.
- VideoVisualforce renderAs, and what it can and cannot lay outPreview9 min
- ReadingExternal rendering services, and when the cost is justified6 min
- VideoThe nineteen-engine pattern: one controller shape, many templates7 min
- VideoChoosing an engine for a document that must exist tomorrow6 min
- LabLab: pick an engine for three real document types13 min
Fixed-coordinate layouts break on a long company name. Everything here is written to reflow.
- VideoPage breaks, repeating headers and the totals block8 min
- VideoTotals that must appear on the last page, not every page7 min
- ReadingLong names, long tables, and text that must wrap6 min
- VideoFonts, encodings and the character that rendered as a box6 min
- LabLab: build an invoice template that holds at 40 lines14 min
A local disclaimer array with six entries where the source of truth had eight. Two disclaimers silently dropped from every shipped document, and this is the test that would have caught it on day one.
- VideoSix entries where the source of truth had eightA local copy drifted from the record that owns it, and two disclaimers vanished from every document, unnoticed.8 min
- VideoAsserting a template verbatim against its source of truth7 min
- VideoA sentinel-value generator test, covering every placeholder6 min
- ReadingReading: what a drift test catches that a snapshot test does not5 min
- LabLab: write a drift test for a template with a local copy13 min
A document engine that fails at 300 lines fails on the largest customer. This module is where that ceiling gets found on purpose.
- VideoView state and heap with hundreds of line items8 min
- Videotransient fields, and taking data out of view state deliberately7 min
- VideoFinding the line count where a template starts to fail6 min
- ReadingReading: the view state inspector, read correctly5 min
- LabLab: push a template past its current limit, then fix it13 min
Render once, store the bytes, and hand the same file back on request. Regenerating a filed document is how it silently changes.
- VideoRender once, store the bytes, never regenerateA font upgrade would silently change a document someone already filed. Store the rendered bytes and their hash instead.8 min
- VideoVersioning a re-issued document without losing the original7 min
- VideoAttaching to a record, and who can see the file6 min
- ReadingReading: content document sharing, in plain terms5 min
- LabLab: store, hash and re-issue a generated document13 min
Testing a generated document by asserting on its content, not by opening the file and checking it looks right.
- VideoAsserting on generated content, not by opening the file6 min
- VideoTesting a page break at the exact line it should occur6 min
- ReadingReading: what to assert on when there is no visual diff tool5 min
- VideoThe character that rendered as a box, caught by a content test5 min
- LabLab: assert on generated content in a test10 min
- QuizCheck: document generation9 min
03Before you start
What you need first
Assumed knowledge and setup
- Course 2.1, and enough Visualforce to read a page. The syntax is covered here.
- A Developer Edition org with quote or invoice-shaped test data.
- No design tools required. Layout is done in markup and CSS.
Courses that come first
- 2.1 · Apex fundamentals, and the governor limits that shape every design8 hr · Intermediate
Part of these paths
- Salesforce DeveloperShareCo Certified Developer
- The Full StackShareCo Certified Platform Engineer
04Who teaches it
Elliot Saha
Co-founder, Chief Technology Officer
Platform architecture, custom Apex and Lightning Web Components, AI systems, and the Academy platform itself.
05Reviews
No learner reviews yet
This course has not been taken by enough people to publish an honest rating, and we will not print invented quotes on a page that sells verification discipline. Here is what we can evidence instead.
- Assessment
- Lesson checks onlyThis course carries lesson checks. The certificate is issued by the path assessment, not by this course.
- Curriculum version
- 2026.1You enrol into a version. Content changes do not move you mid-course, and your required-lesson count is snapshotted at enrollment.
- Refunds
- 14 daysFull refund within 14 days if you have completed under a quarter of the required lessons. Stated here rather than in a footer.
Start 2.6
Enrol as an individual, or buy seats and assign this course to your team. Progress is reported per lesson, per module and per path.
- 4 hr estimated effort, labs included
- Lifetime access to the version you enrol in
- A ShareCo certificate is not a Salesforce certification