2009-05-19 19 views
5

Mam następujący kod:drukowania plików PDF z 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 Settings\\mike.smith\\Desktop\\Adobe Reader 9.0.exe"; 
     // -or- 
     //PdfPrinter.AdobeReaderPath = @"C:\Program Files\Adobe\[...]\AcroRd32.exe"; 

     //// Ony my computer (running a German version of Windows XP) it is here: 
     //PdfFilePrinter.AdobeReaderPath = @"C:\\Documents and Settings\\mike.smith\\Desktop\\Adobe 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 Settings\mike.smith\Desktop\Stuff\ReleaseNotesAndFolderList.pdf", " \\ny-dc-03\\IT-01"); 

     try 
     { 
     printer.Print(); 
     } 
     catch (Exception ex) 
     { 
     Console.WriteLine("Error: " + ex.Message); 
     } 
    } 
    } 
} 

dla życia mnie nie mogę uzyskać to do pracy i wydrukować pojedynczy plik PDF. Zawsze gdy idę do drukowania, pojawia się błąd "Nie mogę znaleźć określonego pliku". Czy ktoś ma jakiś pomysł, jeśli coś jest nie tak z moim kodem? Używam PDFSharp tutaj ...

+0

gdzie jest obszar nazw PDFSharp.PDF.Printing ??? – nuander

+0

ahhh w aktualnej wersji PDFSharp cała klasa Druku jest skomentowana – nuander

Odpowiedz

7

Jedno spostrzeżenie, w następujący wiersz:

PdfFilePrinter.AdobeReaderPath 
     = @"C:\\Documents and Settings\\mike.smith\\Desktop\\Adobe Reader 9.0.exe"; 

Używasz „@” ucieczki ciąg, a także ucieczki ukośniki. Usuń "@" lub użyj pojedynczego ukośnika odwrotnego.

Upewnij się również, że jest to poprawna ścieżka do pliku EXE.

UPDATE: Jeśli potwierdziły, że masz poprawną ścieżkę do Acrobat Reader EXE, następną rzeczą, aby spojrzeć na to „Nazwa drukarki” parametr które przechodzą do konstruktora PdfFilePrinter.

Przekazujesz " \\ny-dc-03\\IT-01" jako nazwę drukarki. Musi to pasować do nazwy drukarki dokładnie takiej, jaka widnieje na liście drukarek w systemie Windows, a nie tylko do dowolnej drukarki IP.

Jeśli to prawda, pamiętaj o usunięciu spacji: "\\ny-dc-03\\IT-01".

+0

Dobre miejsce ... tam. –

+0

próbowałem już to zrobić - nadal nie działa – yeahumok

1

To może być rzeczy oczywiste, ale jest Acrobat pod adresem:

C: \ Documents and Settings \ mike.smith \ Pulpit \ Adobe Reader 9.0.exe

To tylko twoja nazwa użytkownika oznacza, że ​​twoje imię nie jest Mike Smith.

+0

oh no lol właśnie wstawiłam fikcyjną nazwę, ponieważ nie chciałem tu publikować mojego prawdziwego nazwiska ... ale tak, to jest miejsce, w którym się znajduje mój komputer – yeahumok

+0

Registry.ClassesRoot.OpenSubKey (@ "Software \ Adobe \ Acrobat \ Exe"), domyślną wartością jest ścieżka do aktualnie zainstalowanej wersji programu Acrobat, czy to czytnika, czy pro. – Ricky

0

są przechodzącą " \\ny-dc-03\\IT-01"

myślę, że to powinno być "\\\\ny-dc-03\\IT-01" lub @"\\ny-dc-03\IT-01"

Nie wiem, czy @"\\ny-dc-03\\IT-01" będzie działać, ale "\\ny-dc-03\\IT-01" nie może pracować jako nazwy UNC zacząć z podwójnym ukośnikiem odwrotnym.

Powiązane problemy