如何使用 Windows 10 附带的 Microsoft Print To PDF 打印机以编程方式打印到 PDF 文件而不提示在 C# 中输入文件名
Microsoft Windows 10 带有 Microsoft Print To PDF 打印机,可以将某些内容打印到 PDF 文件.它会提示要下载的文件名.
Microsoft Windows 10 comes with a Microsoft Print To PDF printer which can print something to a PDF file. It prompts for the filename to download.
如何从 C# 以编程方式控制此操作,使其不提示输入 PDF 文件名,而是保存到我提供的某个文件夹中的特定文件名?
How can I programmatically control this from C# to not prompt for the PDF filename but save to a specific filename in some folder that I provide?
这是用于以编程方式将大量文档或其他类型的文件打印为 PDF 的批处理.
This is for batch processing of printing a lot of documents or other types of files to a PDF programmatically.
要使用 Microsoft Print to PDF 打印机打印 PrintDocument
对象而不提示输入文件名,请在此处是执行此操作的纯代码方式:
To print a PrintDocument
object using the Microsoft Print to PDF printer without prompting for a filename, here is the pure code way to do this:
// generate a file name as the current date/time in unix timestamp format
string file = (DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds.ToString();
// the directory to store the output.
string directory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
// initialize PrintDocument object
PrintDocument doc = new PrintDocument() {
PrinterSettings = new PrinterSettings() {
// set the printer to 'Microsoft Print to PDF'
PrinterName = "Microsoft Print to PDF",
// tell the object this document will print to file
PrintToFile = true,
// set the filename to whatever you like (full path)
PrintFileName = Path.Combine(directory, file + ".pdf"),
}
};
doc.Print();
您也可以将此方法用于其他另存为文件类型的打印机,例如Microsoft XPS 打印机
You can also use this method for other Save as File type printers such as Microsoft XPS Printer