Pergunta

Eu tenho um problema de tentar converter um documento pdf para uma pcl documento usando o Ghostscript.

O documento original em pdf é paisagem e para o pcl deve ser assim.No entanto, no windows usando o Ghostscript 9.14 com as seguintes funções de comando:

gswin32 -dNOPAUSE -dBATCH -sDEVICE=ljet4 -dSAFER -dAutoRotatePages=/NONE -sPAPERSIZE=a4 -sOutputFile=./convert_windows.pcl ./duplicate_windows.pdf

O mesmo comando no Ubuntu Linux (Versão do Kernel 3.2.0-40-genéricos de 64 bits, mas com o Ghostscript 9.05 - resulta em um errado orienteated pcl arquivo de tamanho A3, em vez de A4 como o original.

O arquivo pdf original contém o windows tipo de letra "arial", que deve estar disponível no linux.O pacote "msttorcefonts" é instalado no linux.Este é um breve extrato da fontmap do Ghostscript:

cat /usr/share/ghostscript/9.05/Resource/Init/Fontmap.GS

dá:

% This font, and only this font among the Hershey fonts, uses
% the SymbolEncoding.

/Hershey-Symbol                         (hrsyr.gsf)     ;       % 5066567

/Arial                                  /ArialMT                ;
/Arial,Bold                             /Arial-BoldMT           ;
/Arial,Italic                           /Arial-ItalicMT         ;
/Arial,BoldItalic                       /Arial-BoldItalicMT     ;

A listagem a seguir mostra a saída da linha de comando do linux, que é a mesma saída do windows Ghostscript console!

GPL Ghostscript 9.05 (2012-02-08)
Copyright (C) 2010 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 2.
Page 1
Loading NimbusMonL-Bold font from /usr/share/fonts/type1/gsfonts/n022004l.pfb... 3627296 2211468 1767360 473754 3 done.
Loading NimbusSanL-Bold font from /usr/share/fonts/type1/gsfonts/n019004l.pfb... 3668288 2319461 1807728 497748 3 done.
Loading NimbusSanL-Regu font from /usr/share/fonts/type1/gsfonts/n019003l.pfb... 3800176 2466391 1827912 512832 3 done.
Loading NimbusMonL-Regu font from /usr/share/fonts/type1/gsfonts/n022003l.pfb... 3964224 2617715 1969200 654805 3 done.
Page 2

Eu já tentei várias opções de Ghostscript como

-dFIXEDMEDIA
-dNORAGEPAGESIZE

e outros.

Ao converter o documento em pdf para o ps, o resultado é o mesmo em ambos os ambientes.

Alguém tem experiências com esse problema ou uma ideia?

Obrigado e cumprimentos

Foi útil?

Solução 2

Esta pode ser uma solução possível, que funciona no meu caso. Pré-requisito:O Ghostscript Versão 8.6.0 ou superior!

Conversão de pdf para o ps não com o comando gs, mas com a gs wrapper pdf2ps, que é parte do pacote ghostscript:

pdf2ps input.pdf output.ps

MAS: Para a paisagem documentos pdf que isto apenas funciona desde a versão 8.60 ou superior!Caso contrário documentos de paisagem vai ser impresso na orientação retrato.

Conversão de pdf para pcl trabalhou para mim, usando o seguinte comando:

gs -q -dNOPAUSE -dBATCH -dSAFER -sDEVICE=ljet4 -sPAPERSIZE=a4 -sOutputFile=output.pcl -c "<< /InputAttributes << currentpagedevice /InputAttributes get { pop null } forall >> dup 0 << /PageSize [ 595 842 ] >> put >> setpagedevice" save pop -f input.pdf

MAS: Este comando é baseado na documentação de Bug Bug 689919 do ghostscript (consulte http://bugs.ghostscript.com/show_bug.cgi?id=689919) e obras para o retrato-orientado documentos somente se você tiver instalado uma versão 8.60 ou superior.Porque eu tenho três ambientes diferentes que eu possa aprovar, que este comando funciona desde a versão 8.60.Eu usei Versões 8.16, 8.62 e 9.05.

Para versões 8.62 e 9.05 do ghostscript ambos os comandos funcionou corretamente para pdf --> ps e pdf --> pcl para retrato e paisagem.

Outras dicas

Sua improvável que alguém pode ajudar a todos, sem ver o arquivo PDF original, então eu gostaria de sugerir que você abrir um relatório de bug e anexar o arquivo PDF lá.

Algumas observações:

-dAutoRotatePages só tem efeito quando a criação de um arquivo PDF, não quando a interpretação de um.

O parâmetro -dFIXMEDIA deve ser -dFIXEDMEDIA, da mesma forma NORAGEPAGESIZE deve ser NORANGEPAGESIZE

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top