Aplicação Legacy e Dosbox

1

Eu tenho um aplicativo legado, que só funciona no DOS até o Windows XP, mas hoje prefiro usar o Windows 8 devido a outros softwares. Este aplicativo legado usa lpt1 port para imprimir suas coisas, no Dosbox não consigo configurar lpt1 port usando:

 net use lpt1 \<mynetworkpc>\<printer> /persistent:yes

nota: a impressora é paralela.

Então em outro tópico pela internet eu encontrei um artigo que diz para usar este link do Dosbox e configurar as linhas:

    [printer]
    #     printer: Enable printer emulation.
    #         dpi: Resolution of printer (default 360).
    #       width: Width of paper in 1/10 inch (default 85 = 8.5'').
    #      height: Height of paper in 1/10 inch (default 110 = 11.0'').
    # printoutput: Output method for finished pages: 
    #                png     : Creates PNG images (default)
    #                ps      : Creates Postscript
    #                bmp     : Creates BMP images (very huge files, not recommend)
    #                printer : Send to an actual printer (Print dialog will appear)
    #   multipage: Adds all pages to one Postscript file or printer job until CTRL-F2 is     pressed.
    #     docpath: The path where the output files are stored.
    #     timeout: (in milliseconds) if nonzero: the time the page will
    #              be ejected automatically after when no more data
    #              arrives at the printer.
    printer=true
    dpi=360
    width=85
    height=110
    printoutput=printer
    multipage=false
    docpath=.
    timeout=0

    [parallel]
    # parallel1: parallel1-3 -- set type of device connected to lpt port.
    #            Can be:
    #               reallpt (direct parallel port passthrough),
    #               file (records data to a file or passes it to a device),
    #               printer (virtual dot-matrix printer, see [printer] section)
    #            Additional parameters must be in the same line in the form of
    #            parameter:value.
    #              for reallpt:
    #              Windows:
    #                realbase (the base address of your real parallel port).
    #                  Default: 378
    #                ecpbase (base address of the ECP registers, optional).
    #              Linux: realport (the parallel port device i.e. /dev/parport0).
    #              for file: 
    #                dev:<devname> (i.e. dev:lpt1) to forward data to a device,
    #                or append:<file> appends data to the specified file.
    #                Without the above parameters data is written to files in the capture dir.
    #                Additional parameters: timeout:<milliseconds> = how long to wait before
    #                closing the file on inactivity (default:500), addFF to add a formfeed when
    #                closing, addLF to add a linefeed if the app doesn't, cp:<codepage number>
    #                to perform codepage translation, i.e. cp:437
    #              for printer:
    #                printer still has it's own configuration section above.
    # parallel2: see parallel1
    # parallel3: see parallel1
    #    dongle: Enable dongle
    parallel1=enabled dev:lpt1
    parallel2=disabled
    parallel3=disabled
    dongle=false

Mas, depois dessas configurações eu não posso fazer o meu programa para imprimir, eu não posso mudar essa programação porque eu não tenho o código fonte, provavelmente programado em Clipper .

    
por João Cota 05.01.2014 / 02:22

3 respostas

1

Você deve conseguir corrigir a impressão com a configuração correta para a versão SVN-Daum do DOSBox do link

Aqui estão as partes relevantes de um arquivo de configuração correto para imprimir a partir do Windows 8.1:

#     Enable printer emulation in Windows using print dialog
#     dosbox-SVN-Daum.conf
#     C:\Program Files (x86)\DOSBox SVN-Daum\TOOLS\Run DOSBox configuration.bat

[printer]
#     printer: Enable printer emulation.
# printoutput: Output method for finished pages: 
#                png     : Creates PNG images (default)
#                ps      : Creates Postscript
#                bmp     : Creates BMP images (very huge files, not recommend)
#                printer : Send to an actual printer (Print dialog will appear)
#   multipage: Adds all pages to one Postscript file or printer job until CTRL-F2 is     pressed.
#     timeout: (in milliseconds) if nonzero: the time the page will
#              be ejected automatically after when no more data
#              arrives at the printer.
printer=true
printoutput=printer
multipage=true
timeout=10000

[parallel]
# parallel1: parallel1-3 -- set type of device connected to lpt port.
#            Can be:
#               reallpt (direct parallel port passthrough),
#               file (records data to a file or passes it to a device),
#               printer (virtual dot-matrix printer, see [printer] section)
parallel1=printer

Boom, você está imprimindo usando o diálogo de impressão do Windows. Pessoalmente, gosto de imprimir primeiro em um PDF usando o PrimoPDF e, em seguida, imprimindo quando vejo a saída.

Uma coisa que me enganou é que multipage=true significa que você fica preso "Spooling" no Windows até atingir CTRL+F2 . Você pode corrigir isso com um tempo limite suficiente que exceda o número de milissegundos que você terá entre a saída da página do seu programa. Eu tenho o meu definido para 10 segundos.

Além disso, depois de definir a impressora no SVN-DAUM DOSBox uma vez usando a caixa de diálogo de impressão do Windows, ela é configurada como aquela impressora até que você reinicie o DOSBox ( Ctrl-Alt-Home ).

    
por 07.06.2014 / 05:46
1

Você pode tentar uma alternativa ao DOSbox: link Você deve poder imprimir em qualquer impressora configurada no Windows. Um vídeo: link

    
por 26.01.2014 / 00:12
0

A desvantagem do DosBox original é que ele foi projetado como uma plataforma para aqueles que querem jogar jogos baseados em DOS antigos. Sendo esse o caso, o designer nunca pensou em fornecer uma interface de impressora. Acredite, eu tentei de todas as formas possíveis e não cheguei a lugar nenhum.

Descobri, no entanto, que isso funciona apesar de ser desajeitado:

Verifique se o seu aplicativo do DOS tem um driver de impressora que imprima em um arquivo Rich Text ( .rtf) ou em um arquivo PostScript ( .ps). Em caso afirmativo, imprima para que, em seguida, carregue o arquivo em um aplicativo do Windows 8 para imprimir. Eu sei que o Microsoft Word, o WordPerfect x6 e o Open Office irão ler e interpretar arquivos Rich Text. O Adobe Acrobat Professional possui um programa que converte arquivos PostSript em arquivos * .PDF. Em seguida, imprima a partir do seu aplicativo do Windows 8.

Como eu disse, desajeitado mas viável.

Espero que isso ajude.

    
por 01.05.2014 / 15:45