Rmg.PdfPrinting
1.3.0
dotnet add package Rmg.PdfPrinting --version 1.3.0
NuGet\Install-Package Rmg.PdfPrinting -Version 1.3.0
<PackageReference Include="Rmg.PdfPrinting" Version="1.3.0" />
paket add Rmg.PdfPrinting --version 1.3.0
#r "nuget: Rmg.PdfPrinting, 1.3.0"
// Install Rmg.PdfPrinting as a Cake Addin #addin nuget:?package=Rmg.PdfPrinting&version=1.3.0 // Install Rmg.PdfPrinting as a Cake Tool #tool nuget:?package=Rmg.PdfPrinting&version=1.3.0
C# PDF Printing
API which uses Windows.Data.Pdf from C# to print a PDF file.
No third party apps required - no additional licenses. Only Windows.
PDF's are printed as vector. Text and fonts are preserved. Desktop and WinRT apps.
Print a PDF
- Ensure project specifies a windows version in
csproj
:<TargetFramework>net7.0-windows10.0.22621.0</TargetFramework>
- Add NuGet package
Rmg.WinRTPdfPrinter
- Create a
PdfPrinter
and callPrint
- There is no step 4
Example (Program.cs):
var pdfPrinter = new PdfPrinter();
await pdfPrinter.Print(printerName, pdfPath);
Convert to XPS
You can also use this to convert a PDF to XPS:
var pdfPrinter = new PdfPrinter();
await pdfPrinter.ConvertToXps("input.pdf", "output.xps");
Convert to Tiff
You can also use this to convert a PDF to Tiff:
var pdfPrinter = new PdfPrinter();
await pdfPrinter.ConvertToTiff("input.pdf", "output.tiff");
By default, a color, opaque, 300dpi, ZIP compressed multipage tiff will result. These settings can be
adjusted with TiffConversionOptions
:
// Produce a fax-style 1bpp TIFF
await pdfPrinter.ConvertToTiff("input.pdf", "output.tiff", new (Dpi: 150, ColorMode: TiffColorMode.BlackAndWhite);
// Produce a transparent background RGBA tiff
await pdfPrinter.ConvertToTiff("input.pdf", "output.tiff, new (FillBackground: false));
Convert to PDF/JPEG/GIF/etc...
You don't need this library if you are only working with a single page at a time. The
PdfPage.RenderToStreamAsync
method allows you to specify a bitmap encoder and rects:
var pdfFile = await StorageFile.GetFileFromPathAsync(@"C:\drop\example.pdf");
var pdfDoc = await PdfDocument.LoadFromFileAsync(pdfFile);
var outDir = await StorageFolder.GetFolderFromPathAsync(@"C:\drop\");
for (uint pageIndex = 0; pageIndex < pdfDoc.PageCount; pageIndex++)
{
var pdfPage = pdfDoc.GetPage(pageIndex);
var pngFile = await outDir.CreateFileAsync($"page-{pageIndex}.png", CreationCollisionOption.ReplaceExisting);
using var pngStream = await pngFile.OpenAsync(FileAccessMode.ReadWrite);
var options = new PdfPageRenderOptions();
options.BitmapEncoderId = BitmapEncoder.PngEncoderId;
// optionally specify source rectangle or dimensions
await pdfPage.RenderToStreamAsync(pngStream, options);
}
Future possibilites
- WPF viewer control
- netframework support
- Earlier revisions of netcore
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0-windows10.0.22621 is compatible. |
-
net8.0-windows10.0.22621
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.