我一直在使用ghostscript做pdf来从pdf生成单个页面的图像。现在,我需要能够从pdf中提取多个页面并产生长的垂直图像。

我是否缺少一个允许这样做的论点?

到目前为止,当我调出ghostscript时,我正在使用以下参数:

string[] args ={
                "-q",
                "-dQUIET",
                "-dPARANOIDSAFER", // Run this command in safe mode
                "-dBATCH", // Keep gs from going into interactive mode
                "-dNOPAUSE", // Do not prompt and pause for each page
                "-dNOPROMPT", // Disable prompts for user interaction
                "-dFirstPage="+start,
                "-dLastPage="+stop,
                "-sDEVICE=png16m",
                "-dTextAlphaBits=4",
                "-dGraphicsAlphaBits=4",
                "-r300x300",

                // Set the input and output files
                String.Format("-sOutputFile={0}", tempFile),
                originalPdfFile
            };

最佳答案

我最终在“ OutputFile”参数中添加了“%d”,以便每页生成一个文件。然后,我只是读取了所有文件,然后将它们用我的c#代码缝合在一起,如下所示:

var images =pdf.GetPreview(1,8); //All of the individual images read in one per file

using (Bitmap b = new Bitmap(images[0].Width, images.Sum(img=>img.Height))) {
    using (var g = Graphics.FromImage(b)) {
        for (int i = 0; i < images.Count; i++) {
            g.DrawImageUnscaled(images[i], 0, images.Take(i).Sum(img=>img.Height));
        }
    }
    //Do Stuff
}

关于pdf - Ghostscript多页PDF转换为PNG,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/884586/

10-16 18:04