Forum: PC-Programmierung C# Programm um ein PostScript Datei in PDF umzuwandeln


von Sabine M. (zizo)


Lesenswert?

Hallo zusammen,
ich habe folgende Code um PostScript in PDF umzuwandeln. Ghostscript.NET 
ist schon installiert

ich bekomme folgende Fehlermeldung:
Schweregrad  Code  Beschreibung  Projekt  Datei  Zeile 
Unterdrückungszustand
Fehler  CS0246  Der Typ- oder Namespacename "GhostscriptPdfSettings" 
wurde nicht gefunden (möglicherweise fehlt eine using-Direktive oder ein 
Assemblyverweis).  ConverttoPDF
 hast jemand ein  Idee wotran es liegt?
Danke

using Ghostscript.NET;
using Ghostscript.NET.Rasterizer;
using System;


class Program
{
    static void Main()
    {
        // Pfade für die PostScript- und PDF-Dateien
        string postScriptFilePath = "C:\\PMT 
Projekt\\SmartQC\\dwsample1-ps.ps";
        string pdfFilePath = "C:\\PMT Projekt\\SmartQC\\Ergebnis.pdf";

        // Umwandlung von PostScript zu PDF
        ConvertPostScriptToPDF(postScriptFilePath, pdfFilePath);

        Console.WriteLine($"Die Umwandlung von {postScriptFilePath} zu 
{pdfFilePath} wurde abgeschlossen.");
    }

    static void ConvertPostScriptToPDF(string postScriptFilePath, string 
pdfFilePath)
    {
        try
        {
            // Einstellungen für Ghostscript
            GhostscriptVersionInfo gvi = new 
GhostscriptVersionInfo("C:\\Program 
Files\\gs\\gs10.02.1\\bin\\gsdll64.dll");

            // Konfiguriere den Rasterizer
            using (var rasterizer = new GhostscriptRasterizer())
            {
                rasterizer.Open(postScriptFilePath, gvi, false);

                // Speichere das gerasterte Bild als PDF
                var pdfSettings = new GhostscriptPdfSettings();
                pdfSettings.Device = GhostscriptDevices.pdfwrite;
                pdfSettings.Page.AllPages = true;

                rasterizer.Save(pdfFilePath, pdfSettings);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Fehler beim Konvertieren von PostScript 
zu PDF: {ex.Message}");
        }
    }
}

von Hans (ths23)


Lesenswert?

Die Fehlermeldung ist doch eindeutig, er findet die Methode nicht. Lies 
die Dokumentation noch mal und arbeite vtl. vorhandene Beispiele durch, 
sehr wahrscheilich ist die vorhandene Usinglist unvollständig.

Ich würde das schlicht und ergreifend über die Ghostscript DLL 
gs32dll.dll bzw. gs64dll.dll machen. Da gibt es exortierte Funktionen 
die das können. Habe ich selbst schon so gemacht.

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Hans schrieb:
> Die Fehlermeldung ist doch eindeutig

Ja.

> er findet die Methode nicht

Nein. Er findet die Klasse nicht.

Und was man degegen tun kann, liefert die Fehlermeldung auch gleich mit:

> möglicherweise fehlt eine using-Direktive oder ein
> Assemblyverweis

Man muss also den Assembly-Verweis auf das Assembly erzeugen, was die 
Klasse enthält und kontrollieren, dass halt im Code auch das 
using-Statement für den Namespace vorhanden ist, der diese Klasse 
enthält.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.