Alt-Soft · Windows library
XSL-FO to PDF
for .NET 10
Render existing XSL-FO documents into PDF directly in your Windows C# application. No Java required.
Unlimited evaluationWatermarked PDFsNo registration
- net10.0-windows
- x64 only
- 0 NuGet deps
- 22-fixture corpus
// one renderer per conversion
using AltSoft.Xml2Pdf;
using var renderer = new FoPdfRenderer();
renderer.Convert("invoice.fo", "invoice.pdf");
// streams: output must be writable and seekable
// renderer.Convert(foStream, pdfStream);
// optional custom font folders
// new FoPdfRenderer(new[] { @"C:\Fonts" });Three public types, two Convert overloads, no options object or builder.
Trusted across industries since 2001
Selected organisations that have used previous versions of Alt-Soft XML2PDF.
Since 2001
How it was used
Insurance
Policies and forms printed by agents from inside an existing policy-administration application. The agent enters the premium and customer data; the application prints the document.
Automotive
New-vehicle price offers rendered for prospects, with layout changes handled without re-engineering the application that produced them.
Technical reporting
Reports generated from a design program's XML data, then bundled into the quotation packages sent to its customers.
Document management
Construction transmittals created as XML, stored non-editable and rendered for review by the people receiving them.
01 — What it does
One input. One output.
No surprises.
XSL-FO in, PDF out — one input format, one output format, one call, in your own process, with no network access.
Input
XSL-FO document
invoice.fo
AltSoft.Xml2Pdf
FoPdfRenderer
Convert()
Output
PDF file
invoice.pdf
02 — How it works
Install, render, open.
Three steps, no build pipeline of your own. The Evaluation package ships as a local folder feed in this release, rather than from nuget.org.
01
Add the package
Reference it from the folder feed. The project must target net10.0-windows and build for x64.
<PackageReference
Include="AltSoft.Xml2Pdf" Version="1.0.0" />02
Call Convert
Point it at a file or a stream. Failures arrive as Xml2PdfException, carrying an ErrorCode you can switch on.
renderer.Convert(input, output);03
Open the PDF
The file is at your path once the conversion returns. The Evaluation build stamps a diagonal watermark on every page.
// written atomically
out\march.pdf03 — Working example
One input, one call, one file.
A truncated XSL-FO input and the complete call path, including the error case. Nothing is configured outside the call.
statements\march.fo — input, truncated
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:page-sequence master-reference="A4">
<fo:flow flow-name="xsl-region-body">
<fo:table table-layout="fixed"> … </fo:table>
</fo:flow>
</fo:page-sequence>
</fo:root>Program.cs — render and handle the failure
using AltSoft.Xml2Pdf;
try
{
using var renderer = new FoPdfRenderer();
renderer.Convert(@"statements\march.fo", @"out\march.pdf");
}
catch (Xml2PdfException ex)
{
Console.Error.WriteLine($"{ex.ErrorCode}: {ex.Message}");
}
04 — Compatibility
Windows x64. .NET 10. Stated limits.
The restrictions are part of the design, not fine print. Read them before you plan the integration.
Project requirements
<PropertyGroup>
<TargetFramework>net10.0-windows</TargetFramework>
<PlatformTarget>x64</PlatformTarget>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>- Runtime
- Microsoft.WindowsDesktop.App
- NuGet dependencies
- none, either build
- Edition
- compile-time variant
- Concurrency
- one per conversion
Natively built and tested on Windows x64 in CI
Limits
| Platform | Windows x64 only. x86 and non-win-x64 RIDs fail at build time with XML2PDF010 or XML2PDF011. ARM64 is not a supported target. |
|---|---|
| OS | No Linux or macOS build. No .NET Framework 4.8 support in this release. |
| Threading | Not thread-safe. A second concurrent call on the same instance throws InvalidOperationException; separate-instance parallelism is not claimed. |
| Output bytes | Same input, same layout, different bytes per run — timestamps and font-subset IDs differ between files. |
| Fonts | A font the document names but the host lacks is substituted, not reported as an error. Pass font folders to control what is available. |
| Conformance | No XSL-FO conformance level is asserted. Capability is evidenced by a 22-document regression corpus. |
History
XML2PDF has been developed since 2001. XML2PDF Core 1.0 is its modern .NET implementation. Core 1.0 is a new SDK with a different API and a narrower feature set than the legacy product; it does not carry every legacy capability.
Need another .NET version?
XML2PDF has supported .NET Framework through .NET 5, and the latest release supports .NET 10. We maintain the original source code and can build for other .NET versions on request, at no extra cost with your Commercial + OEM licence, subject to technical feasibility. Email support@alt-soft.com with your requirements.
05 — Licensing
One company licence. Unlimited developers, applications and deployments. OEM included. $999 once.
One legal entity, everything it ships. No per-server, per-document or per-customer fee.
Evaluation Build
Free$0no key, no expiry
Everything renders. Every page carries the watermark, and the output is for evaluation and review.
- Rendering
- Full core rendering
- Duration
- Unlimited
- Watermark
- Every page
- Registration
- None
- Key or activation
- None
- Delivery
- Local folder feed
- Use
- Development, evaluation
Evaluation output is for evaluation and review; customer delivery needs the Commercial licence.
Commercial + OEM
One-time$999per company
The same renderer without the watermark, licensed for embedding in the products you ship.
Royalty-free redistribution
Ship the unmodified compiled dependency inside your own applications. No per-seat, per-server or per-customer fee.
- Developers
- Unlimited
- Applications
- Unlimited
- Deployments
- Unlimited
- Updates
- 12 months
- Term
- Perpetual
- Renewal
- None required
Delivered privately after purchase.
06 — FAQ
Questions developers ask first.
Licensing, the watermark, fonts, and the platform edges — answered from the build's behaviour.
Do I need a licence key?
No. Neither build has a key, activation, expiry, account or call-home. The Evaluation build is free for unlimited duration and renders in full; the Commercial build is a separate package compiled without the watermark code.
Can I ship the Evaluation build?
No. Evaluation output is for evaluation, review and approval; it may not be delivered to third parties as part of a product or service. Use the Commercial build for anything a customer receives.
How is the watermark applied?
Three diagonal bands reading XML2PDF EVALUATION are drawn into every page's content stream, blank pages included. There is no switch to remove it.
Does it run on Linux?
No. Windows x64 only, targeting net10.0-windows. The renderer throws PlatformNotSupportedException in its constructor on any other platform.
Can you target another .NET version?
Yes. The latest release is XML2PDF Core 1.0, certified for .NET 10 on Windows x64. We maintain the original source code and can build for other .NET versions on request, at no extra cost with your Commercial + OEM licence, subject to technical feasibility. Email support@alt-soft.com with the target framework and the environment it will run in — see compatibility builds.
What about our fonts?
System fonts are the default. Pass an array of font folders to the constructor, or use %SystemFonts% and %StdPDFType1Fonts%. A missing font is substituted rather than failing the render.
What does the $999 licence cover?
One company: unlimited developers, including contractors acting on your behalf, plus unlimited applications and deployments, and royalty-free redistribution of the unmodified compiled dependency inside your own applications. Perpetual for the version you buy, with 12 months of released updates and no required renewal. It does not cover reselling the library as a competitor. The full wording is in the licence terms.
Start with the evaluation build.
Unlimited evaluation · watermarked output · no registration.