O mnieBlogGitHub

Print to file w C# na Windows 10

07 January, 2021 - 1 min read

Jeśli zdarzy Ci się konieczność drukowania czegoś z C# za pomocą bibliotecznej klasy System.Drawing.Printing.PrintDocument - i będziesz chciał wydrukować coś do pliku (do PDFa), to wiedz, że musisz dodać jedną ważną linijkę. A mianowicie - podać PrinterName w PrinterSettings:

printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF";

Jeśli tego nie zrobisz, a będziesz drukował do pliku (czyli ustawisz PrintToFile na true), to plik co prawda się stworzy, ale będzie jakiś taki corrupted i przeglądarka PDFów nie będzie chciała go otworzyć. Taki przynajmniej miałem efekt na Windowsie 10.

Finalnie całość konfiguracji wyglądałaby tak:

var printDocument = new PrintDocument();

printDocument.PrinterSettings.PrinterName = "Microsoft Print to PDF";
printDocument.PrinterSettings.PrintToFile = true;
printDocument.PrinterSettings.PrintFileName = @"some\path\to\file.pdf";
© 2021, Built with Gatsby