Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use EO.Pdf’s converter-level multi-column layout: set HtmlToPdf.Options.ColumnCount, set StartPosition to the vertical offset in inches, and set StartColumnIndex to -1 when that offset must apply to later columns as well. This is the practical configuration reported for the case where a taller first-page header leaves the columns starting too high; verify the StartColumnIndex behavior with the EO.Pdf version you use.

Set the column count and starting offset

Configure the converter options before calling ConvertHtml. For two columns and a header that occupies 1.25 inches of the output area, the core setup is:

HtmlToPdf.Options.ColumnCount = 2;
HtmlToPdf.Options.StartPosition = 1.25;
HtmlToPdf.Options.StartColumnIndex = -1;
HtmlToPdf.ConvertHtml(html, doc);

Replace 1.25 with the vertical space your content needs. The value is in inches, not CSS pixels, points, or a paper-edge coordinate. The example assumes html contains the markup to convert and doc is the PDF document you are adding the result to; initialize and manage those using the APIs in the EO.Pdf version installed in your project.

What each setting does

  • ColumnCount selects EO.Pdf’s paging-aware multi-column layout and gives it the number of columns to fill.
  • StartPosition sets the starting Y offset on the first page. It is measured from the top of the OutputArea.
  • StartColumnIndex = -1 is the practical setting reported for carrying a nonzero starting offset to subsequent columns. Because that behavior comes from a community implementation answer rather than the official API description, test it against your installed EO.Pdf version.

The official API description says StartPosition begins at 0 and resets to 0 after each conversion. Set it for each conversion that needs a nonzero offset; do not assume a prior conversion leaves it configured.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Calculate the offset from the output area

A one-inch StartPosition means one inch down from the top of the OutputArea. If the output area begins below a one-inch top margin, that position is two inches from the paper’s top edge. This distinction matters when matching the start of body text to a header drawn or positioned above the content area.

Set the offset to the header space that the converted content must leave clear, using inches. If a header’s required clear space is 1.25 inches from the top of the output area, use 1.25. Do not add the page margin a second time unless your target measurement is deliberately from the paper edge: the margin and the offset are different parts of the page geometry.

For a larger header only on page one, keep the requested first-page offset in mind when inspecting later pages. The documented property describes the starting Y position on the first page; it is not a general CSS rule that reserves that same header area on every page. The reported StartColumnIndex = -1 configuration is intended to make later columns honor the starting position too. Check the actual layout in the EO.Pdf version and document configuration you ship.

Use EO.Pdf columns, not CSS columns, for page-aware flow

For this PDF pagination problem, set ColumnCount on HtmlToPdf.Options rather than relying on -webkit-column-count or -moz-column-count. EO.Pdf support describes its multi-column feature as filling column 1 on page 1, then column 2 on page 1, then column 1 on page 2, continuing in that order. That is the page-aware order developers generally need when content should flow through PDF columns.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

CSS multi-column layout is a browser layout feature, not the same paging-aware column flow. EO.Pdf support has said that WebKit and Mozilla column properties are not supported for the requested PDF behavior in the Chromium engine used by the converter. CSS columns may still be appropriate when you want browser-style layout, but do not expect them to behave like EO.Pdf’s page-and-column sequence across PDF pages.

If your input arrives as separate HTML pieces and cannot be combined into one input, EO.Pdf support’s stated workaround is to convert the pieces into the same PdfDocument and use HtmlToPdf.Options.Follow between them. For continuous rendering, the API also exposes the prior result’s LastPageIndex and LastPosition.

Continue a conversion across HTML snippets

When a second HTML fragment must continue after the first rather than start at a fresh position, carry forward the first conversion’s result. The API pattern is:

var result = HtmlToPdf.ConvertHtml("<p>paragraph1</p>", doc);
HtmlToPdf.Options.StartPageIndex = result.LastPageIndex;
HtmlToPdf.Options.StartPosition = result.LastPosition;
HtmlToPdf.ConvertHtml("<p>paragraph2</p>", doc);

The shortcut for the continuation setup is:

HtmlToPdf.Options.Follow(result);

Use the result from the immediately preceding conversion that you want to continue. This continuation pattern addresses where the next fragment resumes; it is distinct from choosing an initial header clearance for the first page. If a multi-column conversion also requires the initial offset behavior, configure and verify the column settings for that conversion separately.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Prevent images from splitting at page boundaries

If an image must remain intact rather than break across a page boundary, EO.Pdf support recommends this CSS rule:

img { page-break-inside: avoid; }

This addresses image cuts at page breaks. It does not replace the converter-level column configuration, and it does not guarantee that every image will fit in the remaining space; inspect the resulting PDF when image integrity is important.

Troubleshoot a misplaced or unexpected start position

All columns start too high

Confirm that StartPosition is set before the conversion, that the value is in inches relative to OutputArea, and that ColumnCount is greater than one. For a nonzero offset that must carry into later columns, try the reported StartColumnIndex = -1 setting and verify it on the exact EO.Pdf version deployed.

The first column starts correctly but a later column does not

Check whether StartColumnIndex is set to -1. This is the setting associated with applying the offset to the later columns in the reported implementation. Since the available documentation for that detail is a community answer, treat a mismatch as a version-specific behavior to test, not proof that your inch calculation is wrong.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The offset seems larger than expected

Measure from the top of the output area, then account separately for the page’s top margin. For example, a one-inch top margin plus a one-inch offset places the start position two inches from the paper edge. Avoid entering a paper-edge measurement as though it were an output-area offset.

A later conversion unexpectedly starts at zero

StartPosition resets to zero after a conversion. Set it again before the next conversion that requires an offset. If the next HTML fragment should resume where an earlier fragment ended instead, use the preceding conversion result with Follow(result) or its LastPageIndex and LastPosition values.

CSS columns do not flow through PDF pages as expected

Switch to EO.Pdf’s ColumnCount feature for the paging-aware order. CSS multi-column properties do not provide the requested PDF page-and-column behavior in the described converter setup. For separate HTML segments that need to continue, add them to the same document and use the continuation pattern.

An image is cut at a page boundary

Apply page-break-inside: avoid to images and inspect the output. That is EO.Pdf support’s suggested mitigation for image cuts; it is not a promise that an image larger than the available page space can be kept intact without layout consequences.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Reliability, concurrency, and what is not established

EO.Pdf support has stated that separate option sets are maintained per thread. That is relevant if conversions run concurrently: the cited guidance does not say that one thread’s option values should be treated as another thread’s settings. Keep each conversion’s configuration and its intended document flow clear in your application, and verify behavior under the concurrency model you actually use.

The available material establishes API behavior and support guidance, not performance benchmarks, throughput figures, or a universal version guarantee for StartColumnIndex = -1. There is no evidence here to quote a conversion speed, a maximum number of columns, or a cost for this configuration. Check the API documentation for your EO.Pdf release and validate representative PDFs, especially when page geometry, headers, and continuation fragments interact.

Or skip the browser setup

ScreenshotNeo is a separate option for capturing a web page as an image or PDF; it does not configure EO.Pdf’s paging-aware multi-column layout. If your task is a clean capture of a URL rather than a custom paginated, multi-column PDF, its one-request API is:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

See the ScreenshotNeo API documentation for request options. ScreenshotNeo accepts consent banners like a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits cost nothing, with response headers indicating the page verdict and billing status. Its MCP server offers take_screenshot, get_page_info, and capture_pdf for Claude, Cursor, and other MCP clients. The free plan includes 1,000 shots per month without a card; paid plans start at $5 for 3,000 shots.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Sign up for ScreenshotNeo’s free plan to get 1,000 screenshots a month with no card.

Sources and scope

The converter behavior described here is based on EO.Pdf API documentation, an Essential Objects support reply from 2012, another support reply from 2016, and a community implementation answer for StartColumnIndex = -1. The older support replies describe the behavior and engine at the time of those replies; check your installed EO.Pdf version rather than assuming that every version exposes identical behavior.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.