2009-05-19 19 views
5

Ho il seguente codice:PDF stampa con 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); 
     } 
    } 
    } 
} 

Per la vita di me non posso arrivare a questo lavoro e stampare un unico PDF. Ogni volta che vado a stampare, ottengo l'errore "Impossibile trovare il file specificato". Qualcuno ha qualche idea se qualcosa non va nel mio codice ?? Sto usando PDFsharp qui ...

+0

dov'è lo spazio dei nomi PDFSharp.PDF.Printing ??? – nuander

+0

ahhh nella versione attuale di PDFSharp l'intera classe di stampa è commentata – nuander

risposta

7

Una sola osservazione, nella riga seguente:

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

Si utilizza la "@" per sfuggire alla corda e anche sfuggire le barre inverse. Rimuovere la "@" o utilizzare una singola barra rovesciata.

Assicurarsi inoltre che sia il percorso corretto per il file EXE.

UPDATE: Se hai confermato di avere il percorso corretto per il vostro Acrobat Reader EXE, la prossima cosa da guardare è il parametro "Nome stampante" che si sta passando al costruttore PdfFilePrinter.

Si sta passando " \\ny-dc-03\\IT-01" come nome della stampante. Questo deve corrispondere esattamente al nome della stampante come appare nell'elenco delle stampanti in Windows, non solo a una stampante IP arbitraria.

Se questo è corretto, assicurarsi di rimuovere, lo spazio finale: "\\ny-dc-03\\IT-01".

+0

Buon posto ... lì. –

+0

già provato a farlo - ancora non funziona – yeahumok

1

questo può essere affermando l'acrobata ovvio, ma è a:

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

È solo il nome utente che indica che il tuo nome non è Mike Smith.

+0

oh no lol ho solo messo un nome fittizio dal momento che non volevo postare il mio vero nome qui ... ma sì, è qui che risiede il mio computer – yeahumok

+0

Registry.ClassesRoot.OpenSubKey (@ "Software \ Adobe \ Acrobat \ Exe"), il valore predefinito è ciò che contiene il percorso della versione attualmente installata di Acrobat, sia esso lettore o professionista. – Ricky

0

Si passa " \\ny-dc-03\\IT-01"

credo che questo dovrebbe essere "\\\\ny-dc-03\\IT-01" o @"\\ny-dc-03\IT-01"

Non sono sicuro se @"\\ny-dc-03\\IT-01" funzionerà, ma "\\ny-dc-03\\IT-01" non può funzionare come i nomi UNC iniziano con una doppia barra rovesciata.

Problemi correlati