[RESOLVIDO] Problema ao imprimir PDF pelo servidor via TS - progress 4GL

Discussão em 'EMS , HCM e Totvs 11' iniciado por tartarotti, Fevereiro 10, 2012.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. tartarotti

    tartarotti Sem Pontuação

    Galera boa tarde!

    Tenha um programa que faz o seguinte resumidamente :

    • O programa pega o arquivo PDF cadastro pelo usuario e manda imprimir.
    • Antes de imprimir, esse programa pede para o usuario selecionar a impressora que ele quer imprimir.
    • Apos selecionar a impressora, o programa define ela(impressora) como padrao do windows.

    Esse exemplo de procedimento é feito via ts, mas a impressao nao funciona. Quando eu faco esse mesmo procedimento na minha maquinha, a impressao funciona perfeitamente.

    Tem uma funcao no meu programa que ele chama a winspool.dll se for windows xp e 2000, se for windows vista ou seven, ele chama a winspool.drv.

    Sera que alguem sabe me falar se o problema pode ser de .DLL/.DRV ?

    As funcoes utilizadas para chamar a .dll é esse:

    def input param cPrinterName as character no-undo.
    def input param cArquivo as character no-undo.

    def var iReturn as integer no-undo.
    def var cWinDir as character no-undo.
    def var h-prog as handle no-undo.

    run utp/ut-utils.p persistent set h-prog.

    run GetSysDir in h-prog (output cWinDir).

    /**** Torna a Impressora Padrão a selecionada pelo Usuario ****/
    file-info:file-name = cWinDir + "\winspool.dll".

    if file-info:full-pathname <> ? then do:
    run funcao/doc_printer_dll.p (input cPrinterName).
    end.
    else do:
    run funcao/doc_printer_drv.p (input cPrinterName).
    end.

    run PrintDocument in h-prog (cArquivo).

    delete procedure h-prog.


    Apos fazer essa chamada ele abre esse outro programa se for .DRV:

    def input param PrinterName as character no-undo.
    def var iReturn as integer no-undo.

    run SetDefaultPrinterA(input PrinterName,
    output iReturn).

    procedure SetDefaultPrinterA external "winspool.drv":U:

    def input param pszPrinter as character.
    def return param ireturn as long.

    end procedure.


    Se for .DLL, ele abre esse:

    def input param PrinterName as character no-undo.
    def var iReturn as integer no-undo.

    run SetDefaultPrinterA(input PrinterName,
    output iReturn).

    procedure SetDefaultPrinterA external "winspool.dll":U:

    def input param pszPrinter as character.
    def return param ireturn as long.

    end procedure.



    Obrigado, galera.
  2. tartarotti

    tartarotti Sem Pontuação

    Galera achei a solucao...

    Faltava instalar o adobe reader no servidor. Eu tinha o Foxit instalado no servidor mas ele nao resolve o problema, tem que ser o adobe reader mesmo.

    Abraço galera.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página