问题描述
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
这篇关于如何使用 Windows 10 附带的 Microsoft Print To PDF 打印机以编程方式打印到 PDF 文件而不提示 C# 中的文件名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!