2016-09-01 3 views
1

Ich bin in der Lage, eine PDF von Bild mit dem Code unten zu erstellen. Aber ich erhielt einen Fehler, wenn das Bildformat .eps istEAD Bild zu PDF mit itextsharp

Hier ist mein Code:

string imagelocation = @"C:\Users\Desktop\1.eps"; 
string outputpdflocation = @"C:\Users\Desktop\outputfromeps.pdf"; 
using (MemoryStream ms = new MemoryStream()) 
{ 
    Document doc = new Document(PageSize.A4, 10, 10, 42, 35); 
    PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(outputpdflocation, FileMode.Create)); 
    doc.AddTitle("Document Title"); 

    doc.Open(); 

    iTextSharp.text.Image image1 = iTextSharp.text.Image.GetInstance(imagelocation); 
    image1.Alignment = iTextSharp.text.Image.ALIGN_CENTER; 

    image1.ScaleToFit(700, 900); 

    image1.SetAbsolutePosition((PageSize.A4.Width - image1.ScaledWidth)/2, (PageSize.A4.Height - image1.ScaledHeight)/2); 
    doc.Add(image1); 
    doc.Close(); 
} 

Aber jetzt sagt, es .eps ist kein anerkanntes Format.

Also meine Lösung im Auge ist die EPS in ein anderes Format konvertieren.

Ich habe den folgenden Code von Microsoft gefunden.

Und hier ist der Code:

System.Drawing.Image image1 = System.Drawing.Image.FromFile(@"C:\Users\Desktop\1.eps"); 

// Save the image in JPEG format. 
image1.Save(@"C:\Users\Programmer\epsoutput.jpg", System.Drawing.Imaging.ImageFormat.Jpeg); 

Aber es gibt mir diese Fehlermeldung:

Out of memory

So wie kann ich dieses Problem lösen? Vielen Dank.

+0

EPS in iText wird nicht unterstützt, liefern, so gibt es keine Antwort auf Ihre Frage. Das ist kein Grund, die Frage abzustimmen; Ich werde abstimmen, um die Punktzahl zurück auf 0 zu bekommen. –

+0

Sie sollten eine weitere Frage stellen, die C# spezifisch ist, zum Beispiel zeigen, wie Sie versuchen, eine EPS-Datei in eine PNG-Datei mit C# zu konvertieren. (Konvertieren Sie das verlustfreie EPS nicht in das verlustreiche JPEG-Format.) –

+0

@BrunoLowagie sir. also eine Lösung ist, die EPS-Datei in eine PNG-Datei zu konvertieren? Danke. – codequery18

Antwort

0

Sie können Ghostscript verwenden, um eine EPS nach PDF zu konvertieren, indem Sie über die Befehlszeile in C# darauf zugreifen.

Sie können die folgenden Verfahren benutzen, wenn Sie Ghostscript installiert haben, und Sie müssen den Pfad für sie

public bool ConvertEpsToPdfGSShell(string epsPath, string pdfPath, 
            string ghostScriptPath) 
    { 
     var success = true; 
     var epsQual= (char)34 + epsPath + (char)34; 

     var sComment = "-q -dNOPAUSE -sDEVICE=pdfwrite -o " + 
     (char)34 + pdfPath + (char)34 + " " + (char)34 + epsPath+ (char)34; 

     var p = new Process(); 

     var psi = new ProcessStartInfo {FileName = ghostScriptPath}; 

     if (File.Exists(psi.FileName) == false) 
     { 
      throw new Exception("Ghostscript does not exist in the path 
      given: " + ghostScriptPath); 
     } 

     psi.CreateNoWindow = true; 
     psi.UseShellExecute = true; 
     psi.Arguments = sComment; 
     p.StartInfo = psi; 
     p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
     p.Start(); 
     p.WaitForExit(); 
     if (p.ExitCode == 0) return success; 
     success = false; 

     try 
     { 
      p.Kill(); 
     } 

     catch 
     { 

     } 
     finally 
     { 
      p.Dispose(); 
     } 


     return success; 
    }