Как установить имя файла по умолчанию при печати в файл XPS в.NET
Когда Microsoft XPS Document Writer выбран для печати из моего приложения.NET, пользователю предоставляется диалоговое окно файла, где имя файла изначально равно "*.XPS". Вместо этого я бы хотел, чтобы по умолчанию использовалось более полезное имя (в идеале, используя имя документа, которое я предоставляю).
Я прочитал следующий вопрос:
Способ по умолчанию имя сгенерированного файла 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?
Кстати, я использую VS 2010 / .NET 4.0 (оба SP1) на Vista Business SP2
0 ответов
Я считаю, что это ограничение XPS Document Writer. Драйвер принтера Win2PDF можно сохранить как XPS, и по умолчанию используется имя документа печати. Вы можете попробовать использовать его вместо Microsoft XPS Document Writer.