Jump to content
Luis Andrade

Impressora Virtual

Recommended Posts

Luis Andrade

Bom dia,

Tenho um software proprierário de uma empresa que já faliu, e que envia ficheiros cvs para a impressora. Acontece que o ficheiro enviado é impresso e eliminado, e preciso da informação que consta do mesmo para gravar numa BD, pensei em desenvolver uma impressora virtual que me possa reter o ficheiro em spool de forma a o poder ler e posteriormente eliminar, estou farto de ler documentação da Microsoft e ate já explorei as fontes do PDDCredator mas sem sucesso, alguem já desenvolveu algo identico ou passou pelo mesmo problema e resolver de uma outra forma? 

Alguem sabe se existe forma de definir uma "pasta" como impressora onde os ficheiros fiquem retidos???

Obrigado 

Edited by Luis Andrade

Share this post


Link to post
Share on other sites
nunopicado

Podes adicionar uma impressora com as seguintes características:

Driver: Generic / Text Only
Porta: FILE

Ao mandares imprimir, ela irá gerar um ficheiro com a extensão .prn do qual podes extrair a informação que precisas.

prn1 prn2

 

Para o CSV de exemplo seguinte:

1,"Eldon Base for stackable storage shelf, platinum",Muhammed MacIntyre,3,-213.25,38.94,35,Nunavut,Storage & Organization,0.8
2,"1.7 Cubic Foot Compact ""Cube"" Office Refrigerators",Barry French,293,457.81,208.16,68.02,Nunavut,Appliances,0.58
3,"Cardinal Slant-D® Ring Binder, Heavy Gauge Vinyl",Barry French,293,46.71,8.69,2.99,Nunavut,Binders and Binder Accessories,0.39
4,R380,Clay Rozendal,483,1198.97,195.99,3.99,Nunavut,Telephones and Communication,0.58
5,Holmes HEPA Air Purifier,Carlos Soltero,515,30.94,21.78,5.94,Nunavut,Appliances,0.5
6,G.E. Longer-Life Indoor Recessed Floodlight Bulbs,Carlos Soltero,515,4.43,6.64,4.95,Nunavut,Office Furnishings,0.37
7,"Angle-D Binders with Locking Rings, Label Holders",Carl Jackson,613,-54.04,7.3,7.72,Nunavut,Binders and Binder Accessories,0.38
8,"SAFCO Mobile Desk Side File, Wire Frame",Carl Jackson,613,127.70,42.76,6.22,Nunavut,Storage & Organization,
9,"SAFCO Commercial Wire Shelving, Black",Monica Federle,643,-695.26,138.14,35,Nunavut,Storage & Organization,
10,Xerox 198,Dorothy Badders,678,-226.36,4.98,8.33,Nunavut,Paper,0.38

 

O resultado é:



      1   1,"Eldon Base for stackable storage shelf, platinum",Muhammed 
          MacIntyre,3,-213.25,38.94,35,Nunavut,Storage & Organization,0.8
      2   2,"1.7 Cubic Foot Compact ""Cube"" Office Refrigerators",Barry 
          French,293,457.81,208.16,68.02,Nunavut,Appliances,0.58
      3   3,"Cardinal Slant-D® Ring Binder, Heavy Gauge Vinyl",Barry 
          French,293,46.71,8.69,2.99,Nunavut,Binders and Binder 
          Accessories,0.39
      4   4,R380,Clay Rozendal,483,1198.97,195.99,3.99,Nunavut,Telephones and 
          Communication,0.58
      5   5,Holmes HEPA Air Purifier,Carlos 
          Soltero,515,30.94,21.78,5.94,Nunavut,Appliances,0.5
      6   6,G.E. Longer-Life Indoor Recessed Floodlight Bulbs,Carlos 
          Soltero,515,4.43,6.64,4.95,Nunavut,Office Furnishings,0.37
      7   7,"Angle-D Binders with Locking Rings, Label Holders",Carl 
          Jackson,613,-54.04,7.3,7.72,Nunavut,Binders and Binder 
          Accessories,0.38
      8   8,"SAFCO Mobile Desk Side File, Wire Frame",Carl 
          Jackson,613,127.70,42.76,6.22,Nunavut,Storage & Organization,
      9   9,"SAFCO Commercial Wire Shelving, Black",Monica 
          Federle,643,-695.26,138.14,35,Nunavut,Storage & Organization,
     10   10,Xerox 198,Dorothy Badders,678,-226.36,4.98,8.33,Nunavut,Paper,0.38
     11   

















































O que é razoavelmente simples de extraíres a informação que necessitas!

  • Vote 1

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites
Luis Andrade

Obrigado pela dica Nuno, mas assim o sistema não vai estar sempre a pedir o nome do ficheiro?

Share this post


Link to post
Share on other sites
nunopicado

Não me tinha apercebido que era para ser um processo regular e automatizado.
Nesse caso, sim, ia estar sempre a pedir o nome.

Mas sendo assim, há uma solução:

https://sourceforge.net/projects/mfilemon/

Instalas esse software na máquina que faz a impressão. Depois de configurado, ele cria uma porta virtual para onde direccionas a impressora Generic / Text Only.
Essa porta irá funcionar como a porta FILE: com a excepção que o nome do ficheiro é gerado automaticamente, de acordo com a configuração que fizeres, na pasta que quiseres e com o padrão que precisares. ;)

(1)

prn2-1

(2)

prn2-2
 

(3)

prn2-3
 

(4)

prn3
 

(5)

prn4
 


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites
apocsantos

Boa noite,

Já apanhei alguns "gatos" assim, e sempre usei algum "truque" para resolver isso... Muitas vezes simplesmente criei uma impressora virtual genérica/text only e defini-a como default, para que o ficheiro fosse gerado para a impressora e gravado. Num caso em concreto, depois de saber onde o programa armazenava os ficheiros usei um filesystem watcher, para literalmente "detectar o ficheiro e criar uma cópia para outro lugar", assim sempre que era apagado, já existia uma cópia numa outra pasta.

Qual o Database Engine da tal aplicação? Ou ela armazena ficheiros .dat proprietários ? Muitas vezes consegues chegar à BD, perdendo um pouco de tempo, sem ter de andar com impressões e afins...

Cordiais cumprimentos,
Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.