FoxPro/Visual FoxPro - encriptar archivo pdf en base64binary - facturacion electronica

   
Vista:
Imágen de perfil de Jorge Luis Ortega

encriptar archivo pdf en base64binary - facturacion electronica

Publicado por Jorge Luis Ortega jorlui25m@hotmail.com (1 intervención) el 13/02/2015 18:21:31
Srs. del foro.

Mi consulta va encaminada a los que concierne a facturación electrónica. En estos momentos estoy desarrollando una aplicacion en VFP7 en el cual tengo que hacer el attach de un archivo PDF pero este tiene que estar en base64binary.

Mi pregunta es si alguien tiene alguna rutina, programa o ejemplo de como hacerlo, he estado investigando pero no hay nada concreto de como hacerlo.


Saludos Cordiales,


Jorge Luis Ortega
Gyqui - Ecuador
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

encriptar archivo pdf en base64binary - facturacion electronica

Publicado por wences (30 intervenciones) el 05/07/2016 16:12:49
prueba esto yo lo uso para enviar por SOAP :

1
2
3
4
5
6
SET PROCEDURE TO base64Helper ADDITIVE
LOCAL loFile AS "base64Helper",lcAnio, lcMes
lofile = CREATEOBJECT("base64Helper")
 
m.codificado=ALLTRIM(lofile.encodeFile(ruta))
m.codificado=SUBSTR(m.codificado,1,LEN(m.codificado)-1)  && esto lo uso porque descubrí que si esto me fallaba .

Este sería el codigo que codifica:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
* Clase helper para codificar y decodificar en formato Base64
*
* Autor: Victor Espina
*
* Adaptado a partir del codigo publicado por Anatoliy Mogylevets
* en FoxWikis: http://fox.wikis.com/wc.dll?Wiki~VfpBase64
*
DEFINE CLASS base64Helper AS Custom
 *
 
 *-- COnstructor
 PROCEDURE Init
  *
  DECLARE INTEGER CryptBinaryToString IN Crypt32;
	STRING @pbBinary, LONG cbBinary, LONG dwFlags,;
	STRING @pszString, LONG @pcchString
 
  DECLARE INTEGER CryptStringToBinary IN crypt32;
	STRING @pszString, LONG cchString, LONG dwFlags,;
	STRING @pbBinary, LONG @pcbBinary,;
	LONG pdwSkip, LONG pdwFlags
  *
 ENDPROC
 
 
 * encodeString
 * Toma un string y lo convierte en base64
 *
 PROCEDURE encodeString(pcString)
  LOCAL nFlags, nBufsize, cDst
  nFlags=1  && base64
  nBufsize=0
  CryptBinaryToString(@pcString, LEN(pcString),m.nFlags, NULL, @nBufsize)
  cDst = REPLICATE(CHR(0), m.nBufsize)
  IF CryptBinaryToString(@pcString, LEN(pcString), m.nFlags,@cDst, @nBufsize) = 0
   RETURN ""
  ENDIF
  RETURN cDst
 ENDPROC
 
 
 * decodeString
 * Toma una cadena en BAse64 y devuelve la cadena original
 *
 FUNCTION decodeString(pcB64)
  LOCAL nFlags, nBufsize, cDst
  nFlags=1  && base64
  nBufsize=0
  CryptStringToBinary(@pcB64, LEN(m.pcB64),nFlags, NULL, @nBufsize, 0,0)
  cDst = REPLICATE(CHR(0), m.nBufsize)
  IF CryptStringToBinary(@pcB64, LEN(m.pcB64),nFlags, @cDst, @nBufsize, 0,0) = 0
   RETURN ""
  ENDIF
  RETURN m.cDst
 ENDPROC
 
 
 * encodeFile
 * Toma un archivo y lo codifica en base64
 *
 PROCEDURE encodeFile(pcFile)
  IF NOT FILE(pcFile)
   RETURN ""
  ENDIF
  RETURN THIS.encodeString(FILETOSTR(pcFile))
 ENDPROC
 
 
 * decodeFile
 * Toma una cadena base64, la decodifica y crea un archivo con el contenido
 *
 PROCEDURE decodeFile(pcB64, pcFile)
  LOCAL cBuff
  cBuff = THIS.decodeString(pcB64)
  STRTOFILE(cBuff, pcFile)
 ENDPROC
 *
ENDDEFINE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar