web-dev-qa-db-fra.com

Objets GhostscriptRasterizer Renvoie 0 comme valeur PageCount

            txtStatus.Text = "";
            if (!File.Exists(txtOpenLocation.Text))
            {
                txtStatus.Text = "File Not Found";
                return;
            }

            txtStatus.Text = "File Found";



            const string DLL_32BITS = "gsdll32.dll";
            const string DLL_64BITS = "gsdll64.dll";

            //select DLL based on Arch
            string NomeGhostscriptDLL;
            if (Environment.Is64BitProcess)
            {
                NomeGhostscriptDLL = DLL_64BITS;
            }
            else
            {
                NomeGhostscriptDLL = DLL_32BITS;
            }




            GhostscriptVersionInfo gvi = new GhostscriptVersionInfo(NomeGhostscriptDLL);
            var rasterizer = new GhostscriptRasterizer();
            try
            {              
                rasterizer.Open(txtOpenLocation.Text, gvi, true);

                Console.WriteLine(rasterizer.PageCount); //This line always prints 0
            } catch(Exception er)
            {
                txtStatus.AppendText("\r\nUnable to Load the File: "+ er.ToString());
                return;
            }

Je l'ai recherché sur Google, mais je n'ai obtenu aucune solution et aucune documentation utile sur la fonction rasterizer.Open ().

La Console.WriteLine(rasterizer.PageCount); imprime toujours 0, Quel que soit le fichier pdf que je charge.

txtStatusest un TextBox multiligne dans l'interface utilisateur. txtOpenLocation est un autre TextBox dans l'interface utilisateur, non modifiable par l'utilisateur, et sa valeur est définie par un OpenFileDialog.

J'utilise Visual Studio 2019 Community Edition.

Une autre observation que je pense mériter de mentionner: pour chaque fichier pdf sur ma machine, lorsque j'essaie d'ouvrir un fichier pdf avec Adobe Acrobat DC ou Foxit Reader, le lecteur se bloque d'abord, devient `` non réactif '') 'pendant environ 10 à 15 secondes, puis il ouvre le fichier pdf.

6

Comme pour le PO et la réponse principale à cette question, j'ai moi aussi rencontré ce problème hier.

Je veux juste ajouter que pour moi la version suggérée de ghostscript (9.26) ne fonctionnait pas. Il s'est plaint que je devrais utiliser une version 64 bits.

Pour ceux qui en ont besoin, c'est ici: https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs926/gs926aw64.exe

Je devais juste deviner l'URL. Je suis étonné de voir à quel point il a été difficile de trouver des versions plus anciennes.

1
Stuart Aitken