Converter um doc para pdf, esta saindo em branco

Discussão em 'Progress 4GL' iniciado por felipeett, Setembro 5, 2012.

  1. felipeett

    felipeett Sem Pontuação

    Em minha máquina local o fonte que eu vou disponiblizar para vocês funciona normalmente, porém no cliente o arquivo pdf esta saindo em branco, detalhe, o cliente utiliza windows server 2008 64 bits. Observem que na minha máquina estou chamando o executavel pdf/gs9.06/bin/gswin32c.exe, no cliente que utiliza o sever 2008 64 bits foi instalado a versão para 64 bits. Foi feito o teste no cliente tanto com a versão para 32 bits quanto para versão 64 bits, nas duas versões o pdf é gerado em branco, porém na minha máquina local a conversão é feito sem problemas, se alguém souber como posso fazer para resolver isso agradeço.


    Código:
    def input  param c-arquivo as char    no-undo.
    def output param l-convert as logical no-undo.
    def output param c-arq-pdf as char    no-undo.
    
    def var cGsPath as char no-undo.
    def var cCmd    as char no-undo.
    def var chWord  as com-handle no-undo.
    
    DEFINE VARIABLE cActivePrinter AS CHARACTER   NO-UNDO.
    
    assign cGsPath = search("pdf/gs9.06/bin/gswin32c.exe")  
           cGsPath = substring(cGsPath,1,r-index(cGsPath,"\") - 4).
    
    assign cCmd = cGsPath + "bin\gswin32c.exe -I" + cGsPath + "lib;" + cGsPath + "fonts" +
                  " -dNOPAUSE -dBATCH -sDEVICE#pdfwrite -sOutputFile#" + replace(c-arquivo,".doc",".pdf") + " " + replace(c-arquivo,".doc",".ps"). 
    
    create "Word.Application" chWord.
    
    chWord:Documents:open(c-arquivo).
    
    
    ASSIGN cActivePrinter =  SESSION:PRINTER-NAME.
    
    chWord:ActivePrinter = "PS_FILES".
    chWord:ActiveDocument:PrintOut(true,false,9999, replace(c-arquivo,".doc",".ps")).
    
    chWord:ActivePrinter = cActivePrinter.
    
    if valid-handle(chWord) then do: 
       chWord:quit().                
       release object chWord.        
    end.
    
    dos silent value(cCmd + ">" + replace(c-arquivo,".doc",".log")) .
    
    os-delete value(replace(c-arquivo,".doc",".ps")) no-error.
    
    /************************************************************
     ** Testa se o arquivo foi gerado e se possui mais de 1kb  **
     ************************************************************/
    file-info:file-name = replace(c-arquivo,".doc",".pdf").
    if file-info:full-pathname <> ? and
        file-info:file-size > 1000 then do:
        assign l-convert = yes
               c-arq-pdf = file-info:file-name.
    end.
    

Compartilhe esta Página