2016-07-05 107 views
2

pdfの印刷に問題があります。 だから私の文書には、だから今、私はまたのcreateDocument関数を呼び出すこの機能で文書を印刷したいPDF文書内のいくつかの値を書き込み、それをc#iTextSharpを使用したPDFの印刷

public void CreateDocument(string name) 
    { 

     string oldreport = @"..\Resources\FehlerReport.pdf"; 
     string newreportpath = @"..\Resources\" + name; 
     using (var newFileStream = new FileStream(newreportpath, FileMode.Create)) 
     { 
      var pdfReader = new PdfReader(oldreport); 

      var stamper = new PdfStamper(pdfReader, newFileStream); 

      var form = stamper.AcroFields; 

      var fieldKeys = form.Fields.Keys; 

      form.SetField("Auftragsnummer", Kundeninformation.Auftragsnummer.ToString()); 
      form.SetField("Kundensachnummer", Kundeninformation.Kundensachnummer.ToString()); 
      form.SetField("Kundenname", Kundeninformation.Kundenname.ToString()); 
      form.SetField("Kundenbestellnummer", Kundeninformation.Kundenbestellnummer.ToString()); 
      form.SetField("Kundenrezepturnummer", Kundeninformation.Kundenrezepturnummer.ToString()); 
      form.SetField("Spulennummer", Kundeninformation.Spulennummer.ToString()); 

      form.SetField("Fertigungsdatum1", System.DateTime.Today.ToString("dd.MM.yy")); 

      int i = 1; 
      foreach (var item in _MeasurementReport.MeasurementReportItems) 
      { 
       form.SetField(("UhrzeitRow" + i).ToString(), item.Uhrzeit.ToString("HH:mm:ss")); 
       form.SetField(("FehlerindexRow" + i).ToString(), i.ToString()); 
       form.SetField(("Position mmRow" + i).ToString(), (item.Laufmeter * pixelSize).ToString("0.00", System.Globalization.CultureInfo.InvariantCulture)); 
       form.SetField(("HoeheRow" + i).ToString(), (item.DefectCountours.H * pixelSize).ToString("0.00", System.Globalization.CultureInfo.InvariantCulture)); 
       form.SetField(("Breite mmRow" + i).ToString(), (item.DefectCountours.W * pixelSize).ToString("0.00", System.Globalization.CultureInfo.InvariantCulture)); 
       form.SetField(("Flaeche Row" + i).ToString(), (item.DefectCountours.W * pixelSize * pixelSize).ToString("0.00", System.Globalization.CultureInfo.InvariantCulture)); 
       i++; 
      } 

      form.SetField("Datum", System.DateTime.Today.ToString("dd.MM.yy")); 
      form.SetField("Uhrzeit", System.DateTime.Now.ToString("HH:mm")); 

      stamper.FormFlattening = true; 


      stamper.Close(); 
      pdfReader.Close(); 
     } 

    } 

を保存することで作成されています。それは印刷されますが、紙は白です。私は、作成されたPDFが作成されているかどうかを確認し、作成中ですが、明らかに印刷されていません。

public void Print() 
     { 

      string name = Kundeninformation.Auftragsnummer + "_" + Kundeninformation.Spulennummer+".pdf"; 
      CreateDocument(name); 
      List<string> PrinterFound = new List<string>(); 
      PrinterSettings printer = new PrinterSettings(); 
      foreach (var item in PrinterSettings.InstalledPrinters) 
      { 
       PrinterFound.Add(item.ToString()); 
      } 
      printer.PrinterName = PrinterFound[7]; 
      printer.PrintFileName = name; 

      PrintDocument PrintDoc = new PrintDocument(); 

      PrintDoc.DocumentName = @"..\Resources\"+name; 
      PrintDoc.PrinterSettings.PrinterName = PrinterFound[7]; 

      PrintDoc.Print(); 
} 
+0

ちょうど確認するために、あなたは正常にPDFを作成していますか? Adobe AcrobatやReaderなどのプログラムで検証し、手動で印刷しました。私たちがうまくいけば、あなたの印刷問題だけに焦点を当て、PDF生成部分を無視できるからです。 –

+0

それは私のラップトップ上で作成されましたが、明らかに別のpc.d上でリモートで正しく作成されていません。何が起こっているのか分かりません。しかし、印刷の問題に焦点を当てることは良いでしょう – atix

+0

あなたはこのスレッドをお読みですか? https://stackoverflow.com/questions/29755305/itext-direct-printing(for java) –

答えて

0

ファイルが完全に作成されていることを確認してください。そうでない場合は、この問題が発生します。テストを迅速にファイルの作成と印刷の間にいくつかの遅延を入れて

関連する問題