Ghostscript PDF to TIFF设置输出大小c#

Posted

技术标签:

【中文标题】Ghostscript PDF to TIFF设置输出大小c#【英文标题】:Ghostscript PDF to TIFF setting output size c# 【发布时间】:2015-02-06 01:58:02 【问题描述】:

我有一个 22 页的 pdf。我正在使用 GhostScript 将 PDF 转换为 TIFF 以供 Tesseract 使用。我这样做了...

  string filename=openFileDialog1.FileName;

  using (GhostscriptRasterizer rasterizer = new GhostscriptRasterizer())
            
                rasterizer.Open(filename, _lastInstalledVersion, false);
                for (int pageNumber = 1; pageNumber <= rasterizer.PageCount; pageNumber++)
                
                  Image img = rasterizer.GetPage(400, 400, pageNumber);  
                

我想在传递给 Tesseract 使用之前设置 img 大小,但我不能..有什么办法吗?

有这个例子:但是如果我可以将 pdf 中的每张图片传递给 Tesseract 使用,我想知道

  GhostscriptVersionInfo gv = GhostscriptVersionInfo.GetLastInstalledVersion();

        using (GhostscriptProcessor processor = new GhostscriptProcessor(gv, true))
        
            processor.Processing += new GhostscriptProcessorProcessingEventHandler(processor_Processing);

            List<string> switches = new List<string>();
            switches.Add("-empty");
            switches.Add("-dSAFER");
            switches.Add("-dBATCH");
            switches.Add("-dNOPAUSE");
            switches.Add("-dNOPROMPT");
            switches.Add(@"-sFONTPATH=" + System.Environment.GetFolderPath(System.Environment.SpecialFolder.Fonts));
            switches.Add("-dFirstPage=" + pageFrom.ToString());
            switches.Add("-dLastPage=" + pageTo.ToString());
            switches.Add("-sDEVICE=png16m");
            switches.Add("-r96");
            switches.Add("-dTextAlphaBits=4");
            switches.Add("-dGraphicsAlphaBits=4");

            //switches.Add("-sDEVICE=pdfwrite");

            switches.Add(@"-sOutputFile=" + outputFile);
            switches.Add(@"-f");
            switches.Add(inputFile);

            processor.StartProcessing(switches.ToArray(), null);
        
    

【问题讨论】:

【参考方案1】:

-dDEVICEWIDTHPOINTS 和 -dDEVICEHEIGHTPOINTS 以及 -dFIXEDMEDIA 将设置特定的媒体大小。您可能还需要设置 -dPDFFitPage 以将内容缩放到新媒体上。

你不能直接使用 Ghostscript,你是在使用 jhabjan 的 Ghostscript.net 吗?

【讨论】:

是的,我是……还有我刚刚编辑的另一个示例,是这个吗? @DerekToh,我建议您将 Ghostscript.NET 升级到 v.1.2.0(昨天发布),然后您可以使用 KenS 建议的开关:pastebin.com/NNXEVRR4 我下载新的时似乎找不到 GhostScript.NET.dll 你从哪里下载的? 看来你只下载了源代码。您应该从这里下载二进制文件:github.com/jhabjan/Ghostscript.NET/releases 或使用 NuGet。

以上是关于Ghostscript PDF to TIFF设置输出大小c#的主要内容,如果未能解决你的问题,请参考以下文章

Ghostscript 将 PDF 转换为大的 TIFF

使用 Ghostscript 将 TIFF 转换为 PDF

转换后的 tiff 文件 (GhostScript) 中缺少 Pdf 文本框标记

使用 Ghostscript 将 PDF 转换为 TIFF 时保留页面尺寸

使用 Ghostscript 将 PDF 转换为 TIFF 时未生成输出文件

ImageMagick或GhostScript:将多页TIFF转换为多页PDF