33import com .sun .jna .Library ;
44import com .sun .jna .Native ;
55import java .util .Scanner ;
6- import javax .swing .JFileChooser ;
6+ import javax .swing .*;
7+ import javax .swing .filechooser .FileNameExtensionFilter ;
78import java .io .File ;
89import java .io .IOException ;
910import java .nio .charset .StandardCharsets ;
@@ -16,7 +17,7 @@ public interface ImpressoraDLL extends Library {
1617
1718 // Caminho completo para a DLL
1819 ImpressoraDLL INSTANCE = (ImpressoraDLL ) Native .load (
19- "C: \\ Users \\ richard.spanhol \\ Downloads \\ Java-Aluno Graduacao \\ E1_Impressora01.dll" ,
20+ "/workspaces/testing-java/ E1_Impressora01.dll" ,
2021 ImpressoraDLL .class
2122 );
2223
@@ -75,7 +76,45 @@ public static void fecharConexao() {
7576
7677 }
7778
79+ public static String escolherArquivoXML () throws Exception {
80+ JFileChooser fileChooser = new JFileChooser ();
81+ FileNameExtensionFilter filtroXML = new FileNameExtensionFilter ("Arquivos XML (*.xml)" , "xml" );
82+ fileChooser .setFileFilter (filtroXML );
83+
84+ int resultado = fileChooser .showOpenDialog (null );
85+
86+ if (resultado == JFileChooser .APPROVE_OPTION ) {
87+ File arquivoSelecionado = fileChooser .getSelectedFile ();
88+ return arquivoSelecionado .getAbsolutePath ();
89+ } else {
90+ throw new Exception ("Seleção cancelada pelo usuário." );
91+ }
92+ }
93+
94+ public static void imprimirXML () {
95+ try {
96+ String caminho = escolherArquivoXML ();
97+ ImpressoraDLL .INSTANCE .ImprimeXMLSAT (caminho , 0 );
98+
99+ } catch (Exception e ) {
100+ System .out .println (e .getMessage ());
101+ }
102+
103+
104+ }
105+ public static void imprimirXMLCancel () {
106+ var assQRCode = "Q5DLkpdRijIRGY6YSSNsTWK1TztHL1vD0V1Jc4spo/CEUqICEb9SFy82ym8EhBRZjbh3btsZhF+sjHqEMR159i4agru9x6KsepK/q0E2e5xlU5cv3m1woYfgHyOkWDNcSdMsS6bBh2Bpq6s89yJ9Q6qh/J8YHi306ce9Tqb/drKvN2XdE5noRSS32TAWuaQEVd7u+TrvXlOQsE3fHR1D5f1saUwQLPSdIv01NF6Ny7jZwjCwv1uNDgGZONJdlTJ6p0ccqnZvuE70aHOI09elpjEO6Cd+orI7XHHrFCwhFhAcbalc+ZfO5b/+vkyAHS6CYVFCDtYR9Hi5qgdk31v23w==" ;
107+
108+ try {
109+ String caminho = escolherArquivoXML ();
110+ ImpressoraDLL .INSTANCE .ImprimeXMLCancelamentoSAT (caminho , assQRCode , 0 );
111+ } catch (Exception e ) {
112+ System .out .println (e .getMessage ());
113+ }
114+ }
115+
78116 public static void main (String [] args ) {
117+ System .out .println (ImpressoraDLL .INSTANCE .AbreConexaoImpressora (1 , "i9" , "USB" , 0 ));
79118 while (true ) {
80119 System .out .println ("\n *************************************************" );
81120 System .out .println ("**************** MENU IMPRESSORA *******************" );
@@ -114,32 +153,10 @@ public static void main(String[] args) {
114153
115154
116155 case "6" :
117- // --- IMPORTANTE ---
118- // Este trecho permite ao usuário escolher um arquivo XML no computador.
119- // Para funcionar, será necessário importar as classes de manipulação de arquivos e da interface gráfica:
120- // import java.io.*; // Para trabalhar com arquivos (ex: File, IOException)
121- // import javax.swing.*; // Para usar o JFileChooser (janela de seleção de arquivos)
122- //
123- // A ideia: abrir uma janela para o usuário escolher o XML, ler o conteúdo do arquivo
124- // e enviar para a função que imprime o XML de cancelamento do SAT.
125- //
126- // >>> Os alunos deverão implementar as partes de leitura do arquivo (função lerArquivoComoString)
127- // e o controle de fluxo (switch/case, etc) conforme aprendido em aula.
156+ imprimirXML ();
128157
129158 case "7" :
130- // --- IMPORTANTE ---
131- // Este trecho permite ao usuário escolher um arquivo XML no computador.
132- // Para funcionar, será necessário importar as classes de manipulação de arquivos e da interface gráfica:
133- // import java.io.*; // Para trabalhar com arquivos (ex: File, IOException)
134- // import javax.swing.*; // Para usar o JFileChooser (janela de seleção de arquivos)
135- //
136- // A ideia: abrir uma janela para o usuário escolher o XML, ler o conteúdo do arquivo
137- // e enviar para a função que imprime o XML de cancelamento do SAT.
138- //
139- // >>> Os alunos deverão implementar as partes de leitura do arquivo (função lerArquivoComoString)
140- // e o controle de fluxo (switch/case, etc) conforme aprendido em aula.
141-
142-
159+ imprimirXMLCancel ();
143160 case "8" :
144161
145162
0 commit comments