当从我的 .NET 应用程序中选择 Microsoft XPS Document Writer 进行打印时,用户会看到一个文件对话框,其中文件名最初为“*.XPS”。我希望它默认为一个更有用的名称(理想情况下,使用我提供的文档名称)。
我读了以下问题:
...并尝试按照答案中的建议设置 PrinterSettings.PrintFileName,但它似乎不起作用...
PrintDialog printDlg = new PrintDialog();
PrintDocument printDoc = new PrintDocument();
printDoc.DocumentName = name;
printDlg.Document = printDoc;
printDlg.AllowSelection = true;
printDlg.AllowSomePages = true;
//Call ShowDialog
if (printDlg.ShowDialog() == DialogResult.OK)
{
if (!printDoc.PrinterSettings.IsValid)
{
throw new Exception("Error: cannot find the default printer.");
}
else
{
if (printDoc.PrinterSettings.PrinterName.Contains("XPS"))
{
printDoc.PrinterSettings.PrintFileName = name + ".XPS";
}
// Actual printing code from this point onward...
如果我打印到 Adobe PDF,它会将文件名默认为打印文档名称 +“.PDF”(理想行为),但内置的 XPS 打印驱动程序似乎缺少此功能,甚至似乎忽略了 PrintFileName 属性. 我做错了什么,还是 XPS 打印驱动程序有问题?
顺便说一句,我在 Vista Business SP2 上使用 VS 2010 / .NET 4.0(都是 SP1)