Печать PDF-файлов с помощью PDFSharp
У меня есть следующий код:
using System;
using System.Diagnostics;
using System.IO;
using PdfSharp.Pdf.Printing;
namespace PrintPdfFile
{
class Program
{
[STAThread]
static void Main(string[] args)
{
// Set Acrobat Reader EXE, e.g.:
PdfFilePrinter.AdobeReaderPath = @"C:Documents and Settingsmike.smithDesktopAdobe Reader 9.0.exe";
// -or-
//PdfPrinter.AdobeReaderPath = @"C:Program FilesAdobe[...]AcroRd32.exe";
//// Ony my computer (running a German version of Windows XP) it is here:
//PdfFilePrinter.AdobeReaderPath = @"C:Documents and Settingsmike.smithDesktopAdobe Reader 9.0.exe";
// Set the file to print and the Windows name of the printer.
// At my home office I have an old Laserjet 6L under my desk.
PdfFilePrinter printer = new PdfFilePrinter(@"C:Documents and Settingsmike.smithDesktopStuffReleaseNotesAndFolderList.pdf", " ny-dc-03IT-01");
try
{
printer.Print();
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
}
для жизни меня я не могу заставить это работать и распечатать один PDF. Каждый раз, когда я иду на печать, я получаю сообщение об ошибке "не удается найти указанный файл". Кто-нибудь знает, что-то не так с моим кодом?? Я использую PDFSharp здесь...
3 ответов
одно наблюдение, в следующей строке:
PdfFilePrinter.AdobeReaderPath
= @"C:\Documents and Settings\mike.smith\Desktop\Adobe Reader 9.0.exe";
вы используете"@", чтобы избежать строки, а также избежать обратных косых черт. Либо удалите"@", либо используйте одну обратную косую черту.
также убедитесь, что это правильный путь к вашему EXE.
обновление: если вы подтвердили, что у вас есть правильный путь к вашему Acrobat Reader EXE, следующее, что нужно посмотреть, это параметр "имя принтера", который вы передаете PdfFilePrinter конструктор.
вы передаете " \ny-dc-03\IT-01"
в качестве имени принтера. Это должно соответствовать имени принтера точно так же, как он отображается в списке принтеров в Windows, а не только произвольный IP-принтер.
Если это правильно, обязательно нужно удалять пробелы: "\ny-dc-03\IT-01"
.
Это может быть констатация очевидного, но является acrobat на:
C:\Documents и \Настройки Майк.smith \ Desktop\Adobe Ридер 9.0.exe
Это просто ваше имя пользователя подразумевает, что ваше имя не Майк Смит.
вы передаете
" \ny-dc-03\IT-01"
Я думаю, это должно быть "\\ny-dc-03\IT-01"
или @"\ny-dc-03\IT-01"
не уверен, что если @"\ny-dc-03\IT-01"
будет работать, но "\ny-dc-03\IT-01"
не может работать, поскольку имена UNC начинаются с двойной обратной косой черты.