Ghostscript Output auf stdout



  • Hallo zusammen,

    ich beiße mir gerade etwas die Zähne an Ghostscript aus und möchte daher um Rat fragen.
    Auf einer Windows 10 Kiste möchte ich aus einem Verzeichnis eine PDF einlesen und als JPEG wieder in den RAM ausspucken. Output als Datei funktioniert wunderbar aber ich kriege einfach nichts auf die umgebogene stdout.

    static int GSDLLCALL gsdll_stdout(void *instance, const char *str, int len)
    {
    	fwrite(str, 1, len, stdout);
    	fflush(stdout);
    	return len;
    }
    
    .
    .
    .
    
    const int gsargc = 10;
    const char* gsargv[gsargc];
    	gsargv[0] = "pdf2img"; // optional?
    	gsargv[1] = "-dSAFER";
    	gsargv[2] = "-dBATCH";
    	gsargv[3] = "-dNOPAUSE";
    	gsargv[4] = "-q"; //dQUIET
    	gsargv[5] = "-sDEVICE=jpeg";
    	gsargv[6] = "-dNumRenderingThreads=4";
    	gsargv[7] = "-r300";
          //gsargv[8] = "-sOutputFile=Ausgabebild_300.jpg";
    	gsargv[8] = "-sOutputFile=%%stdout"; // - %stdout
    	gsargv[9] = "Zettel.pdf";
    
    gs_retcode = gsapi_init_with_args(minst, gsargc, const_cast<char**>(gsargv));
    

    Hat jemand eine Ahnung was ich falsch mache? gs_retcode ist 0 sprich fehlerfrei.

    Vielleicht sieht jemand etwas, was ich übersehen habe:
    [url]
    https://www.ghostscript.com/doc/current/API.htm#delete_instance
    [/url]



  • Kleine Anmerkung: Ich habe vergessen ein Stück Code zu posten:

    gs_retcode = gsapi_set_stdio(minst, gsdll_stdin, gsdll_stdout, gsdll_stderr);
    

    Damit wird die Umleitung gesetzt. Aber das bringt wie schon gesagt nichts...


Anmelden zum Antworten