Ghostscript PDF de múltiplas páginas para PNG

votos
15

Estou usando o ghostscript fazer pdf para geração de imagem de uma única página do pdf. Agora eu preciso ser capaz de puxar várias páginas do pdf e produzir uma imagem vertical longa.

Existe um argumento que estou em falta que permitiria isso?

Até agora eu estou usando os seguintes argumentos quando eu chamo para 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
            };
Publicado 19/05/2009 em 20:25
fonte usuário
Em outras línguas...                            


3 respostas

votos
10

Acabei adicionando "% d" para o parâmetro "OutputFile" para que ele iria gerar um arquivo por página. Então eu só ler todos os arquivos e juntou-as em meu c # código assim:

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
}
Respondeu 19/05/2009 em 21:47
fonte usuário

votos
8

Se você pode usar ImageMagick, você poderia usar uma de suas boas comandos:

montage -mode Concatenate -tile 1x -density 144 -type Grayscale input.pdf output.png

Onde

  • -density 144 resolução determins em dpi, aumentá-lo, se necessário, o padrão é 72
  • -type Grayscale usá-lo se o seu PDF não tem cores, você vai economizar alguns KBs na imagem resultante
Respondeu 19/06/2014 em 13:19
fonte usuário

votos
1

Primeiro verifique as opções do dispositivo de saída; mas eu não acho que há uma opção para isso.

Muito provavelmente você vai precisar fazer alguma imposição mesmo, quer fazer GhostScript fazê-lo (você terá que escrever um programa PostScript), ou costurar as páginas prestados resultantes com ImageMagick ou algo similar.

Se você quiser tentar a rota PostScript (provável que seja o mais eficiente), verifique os exemplos N-up incluídos no pacote GhostScript.

Respondeu 19/05/2009 em 20:59
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more