Why WYSIWYG Document Builders Still Make You Fight the Formatting

Every Salesforce docgen tool has a drag-and-drop builder now. Most of them hand you a blank canvas and a styling panel, which quietly makes the formatting your job. Here is the difference between a builder and defaults that are already right.
Every document generation tool for Salesforce has a drag-and-drop builder now. It stopped being a differentiator years ago, which is why every vendor's screenshot looks the same: a canvas, a left panel of elements, a right panel of controls.
So here is the more useful question. After you drag the table in, how long until it looks right?
That gap — between "I placed the element" and "I can send this to a customer" — is where admins actually spend their afternoons. Nobody markets it, because "you will not have to fight the borders" is a strange thing to put on a pricing page. It is still the thing that decides whether the tool gets used.
The blank canvas problem
A builder that gives you total control gives you total responsibility. "You can build anything" quietly means "you must build everything," and the work does not disappear just because it moved out of a Word file.
You see the pattern in the shape of the styling controls. If the panel exposes raw CSS, or a text box for a class name, or a stylesheet attached to the template, the tool has not solved formatting. It has relocated it. You are still the person deciding on a border width, still the person making the second table match the first, and still the person who discovers on page two that the header row lost its background.
This is the same failure as the Visualforce approach, one level up. A legacy renderer forces you to maintain a shadow stylesheet to satisfy an old engine. A blank-canvas builder forces you to maintain a house style in your head, and reapply it every time.
Both end in the same place: the document looks slightly different depending on who built it and when.
What "fighting the formatting" actually looks like
If you have done this, you will recognize the list:
- The table has borders on some cells and not others, and you cannot see why
- The header row is styled on the first table and not the second, because you built them a week apart
- Spacing is inconsistent because every element got its padding set individually
- Two people build two documents and they do not look like the same company produced them
- Somebody asks for the brand font and it means touching every element
- The layout looks fine until a record has no child rows, and an empty table with a stranded header ships
None of these are hard problems. That is exactly why they are expensive — they are trivial, endless, and they consume the person who was supposed to be doing something else.
What good looks like
Tool-agnostic. Judge any builder against these:
- No stylesheet. If the answer to "how do I style this" involves CSS, the tool has handed the problem back to you.
- Controls that match the selection. Selecting a table should offer table controls. A generic property grid means you are translating your intent into someone else's abstraction.
- Inheritance, so brand choices are made once. Set the font at the top and let elements inherit. Setting it forty times is not configuration, it is data entry.
- Defaults you can ship without touching. The unstyled state should already be presentable. Styling should be for when you want something specific, not for reaching baseline.
- Structure that handles its own edge cases. An empty collection should not leave an empty table with a header floating above it.
That last one is the one people forget to test, and the one customers find.
How ZeroExport handles it
Select an element and the Properties tab shows the controls for that element. There is no stylesheet, and nothing to attach to the template.
The controls are contextual. Select a table and you get Header Styles — header row alignment, font weight, background, text color. Select a heading and you get a heading-level picker. Select a grid column and you get a width control. You are not looking for the right property in a list of forty; you are looking at the handful that apply.
A table that outgrows the page keeps its headings. When line items run past the bottom of page one, the header row repeats at the top of each new page. It is a checkbox on the table, not a workaround — which matters, because in a legacy renderer this is the kind of thing you approximate with padding and then re-approximate every time the content changes. Repeating headers, borders, and spacing are handled by the style system rather than by you.
Typography cascades. Font family, size, weight, line height, and alignment inherit the way CSS does — set them on a section and child elements pick them up unless they override. Brand-level decisions get made once at the top rather than repeated element by element.
Spacing is per-side and explicit. Padding and margin each take individual side values, so you can add bottom margin without disturbing the top, rather than nudging a number until it looks right.
Empty data does not produce broken layout. When a parent has no child records, repeating rows produce no output at all — no empty row, no error. If you want a "no records" message, that is an explicit element with a visibility rule, which is a decision rather than an accident. This is the structural half of the same idea: the document is correct and it looks right, without you supervising either.
When this does not matter
If you generate one internal document that nobody outside your team sees, formatting consistency is not a business problem and you should not pay for it. The same is true if you have exactly one template and one person who owns it — a house style is easy to maintain when the house has one room.
This earns its place when several people build documents, when documents face customers, or when someone has already asked why two of your PDFs look like they came from different companies.
Formatting is also the one claim you should not take on trust, from us or anyone else, because it is entirely a question of how it feels to use. The free tier is three active templates, free forever and no credit card, which is enough to rebuild the document you have fought with most and find out in an afternoon. Nothing you currently use has to change to try it.
FAQ
Do I need to know CSS to build a ZeroExport template?
No. Styling is done through the Properties panel with contextual controls for the selected element. There is no stylesheet to write or maintain alongside the template.
How do I apply our brand font across a whole document?
Typography inherits down the tree, so setting the font on a section applies it to the elements inside unless one of them overrides it. Brand choices are made once at the top rather than element by element.
Does the table header repeat when a table spans multiple pages?
Yes. It is a checkbox on the table, so a line-item table running across three pages carries its column headings onto all three. To be precise about scope: this controls the header row, not explicit control over where the table breaks.
What happens to a table when the record has no child rows?
The repeating rows produce no output — no empty row and no error. If you want a visible "no records" message, you add it as an element with a visibility rule, so it is deliberate rather than a side effect.
Can I still control the details if I want to?
Yes. Spacing, dimensions, borders, typography, and colors are all available per element. The point is that reaching a presentable baseline does not require you to use them.
Is this different from the builders other Salesforce docgen tools ship?
Most tools now have a builder, so the differentiator is not the canvas. It is whether the defaults are already right and whether the controls match what you selected, versus a general-purpose styling panel that leaves the house style up to you.
Related Reading
- Visualforce PDF Formatting Problems: A Symptom-by-Symptom Reference
- Salesforce Word Template Losing Formatting? Why It Happens and How to Fix It
- Getting Started with ZeroExport: Your First Document Template
- The Salesforce Document Generation Workaround Tax
- Build maintainable document workflows in Salesforce with ZeroExport
Ready to try ZeroExport?
Start generating documents directly in your Salesforce org. No integrations, no setup overhead, no complexity.