7

次のコードがあります。

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);
      }
    }
  }
}

私の人生では、これを機能させて単一のPDFを印刷することはできません。印刷しようとすると、「指定されたファイルが見つかりません」というエラーが表示されます。私のコードに何か問題があるかどうかは誰にもわかりませんか?? ここでPDFSharpを使用しています...

4

3 に答える 3

9

次の行の 1 つの観測値:

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

「@」を使用して文字列をエスケープし、バックスラッシュもエスケープしています。「@」を削除するか、単一のバックスラッシュを使用してください。

また、EXE への正しいパスであることも確認してください。

更新: Acrobat Reader EXE への正しいパスがあることを確認したら、次に確認するのは、PdfFilePrinter コンストラクターに渡す「プリンター名」パラメーターです。

" \\ny-dc-03\\IT-01"プリンター名として渡しています。これは、任意の IP プリンターではなく、Windows のプリンターのリストに表示されるプリンターの名前と正確に一致する必要があります。

これが正しい場合は、必ず先頭のスペースを削除してください: "\\ny-dc-03\\IT-01".

于 2009-05-19T15:32:36.607 に答える
1

これは明白なことを述べているかもしれませんが、アクロバットです:

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

あなたのユーザー名は、あなたの名前が Mike smith ではないことを暗示しているだけです。

于 2009-05-19T15:31:58.213 に答える
1

あなたは通り過ぎています" \\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 名が二重のバックスラッシュで始まるため機能しません。

于 2009-08-25T11:17:23.263 に答える