Pdf a variable - SOLUCIONADO
Posted: Wed May 15, 2019 2:29 am
Buenas noches para todos
Como dice el encabezado, requiero pasar un archivo pdf a una variable de tipo caracter; buscando el foro encontré varias opciones las cuales relaciono a continuación:
Primera forma:
De esta forma me coloca la información en una variable, pero únicamente me devuelve lo siguiente:
Abrí el archivo con un editor de texto y me di cuenta que muestra correctamente la información hasta que llega a los caracteres desconocidos NUL DLE, adjunto imagen.
Segunda forma:
De esta manera me devuelve un archivo codificado, más o menos así (solo parte del dato es muy largo)
Quisiera saber en qué forma está codificada esta información?
Para resumir y si alguien pudiera darme una mano. Lo que necesito hacer es leer un archivo pdf y codificarlo en base64 para ser enviado a un WS.
Muchas gracias
Como dice el encabezado, requiero pasar un archivo pdf a una variable de tipo caracter; buscando el foro encontré varias opciones las cuales relaciono a continuación:
Primera forma:
- Code: Select all Expand view
cText := memoread( "c:\xpmake\factura.pdf" )
memoedit(cText)
De esta forma me coloca la información en una variable, pero únicamente me devuelve lo siguiente:
- Code: Select all Expand view
%PDF-1.3
2 0 obj
<<
/Type /Page /Parent 1 0 R
/Resources 3 0 R
/MediaBox [ 0 0 595.00 842.00 ]
/Contents 4 0 R
>>
endobj
3 0 obj
<<
/ColorSpace << /DeviceRGB /DeviceGray >>
/ProcSet [ /PDF /Text /ImageB /ImageC ]
/XObject
<<
/Image1 6 0 R
>>
>>
endobj
4 0 obj << /Length 5 0 R
>>
stream
q
595.0 0 0 842.0 0 0 cm
/Image1 Do
Q
endstream
endobj
5 0 obj
43
endobj
6 0 obj
<<
/Type /XObject
/Subtype /Image
/Name /Image1
/Filter [ /DCTDecode ]
/Width 2450
/Height 3200
/BitsPerComponent 8
/ColorSpace/DeviceRGB
/Length 141487
>>
stream
ÿØÿà
Abrí el archivo con un editor de texto y me di cuenta que muestra correctamente la información hasta que llega a los caracteres desconocidos NUL DLE, adjunto imagen.
Segunda forma:
- Code: Select all Expand view
fMimeEnc( "c:\xpmake\factura.pdf", "c:\xpmake\factura")
cText := MemoRead( "c:\xpmake\factura" )
memoedit(cText)
De esta manera me devuelve un archivo codificado, más o menos así (solo parte del dato es muy largo)
- Code: Select all Expand view
JVBERi0xLjMNCjIgMCBvYmoNCjw8DQovVHlwZSAvUGFnZSAvUGFyZW50IDEgMCBSDQovUmVzb3Vy
Y2VzIDMgMCBSDQovTWVkaWFCb3ggWyAwIDAgNTk1LjAwIDg0Mi4wMCBdDQovQ29udGVudHMgNCAw
IFINCj4+DQplbmRvYmoNCjMgMCBvYmoNCjw8DQovQ29sb3JTcGFjZSA8PCAvRGV2aWNlUkdCIC9E
ZXZpY2VHcmF5ID4+DQovUHJvY1NldCBbIC9QREYgL1RleHQgL0ltYWdlQiAvSW1hZ2VDIF0NCi9Y
T2JqZWN0DQo8PA0KL0ltYWdlMSA2IDAgUg0KPj4NCj4+DQplbmRvYmoNCjQgMCBvYmogPDwgL0xl
bmd0aCA1IDAgUiANCg0KPj4NCnN0cmVhbQ0KDQpxDQo1OTUuMCAwIDAgODQyLjAgMCAwIGNtDQov
SW1hZ2UxIERvDQpRIA0KZW5kc3RyZWFtDQplbmRvYmoNCjUgMCBvYmoNCjQzDQplbmRvYmoNCjYg
MCBvYmoNCjw8DQovVHlwZSAvWE9iamVjdA0KL1N1YnR5cGUgL0ltYWdlDQovTmFtZSAvSW1hZ2Ux
DQovRmlsdGVyIFsgL0RDVERlY29kZSBdDQovV2lkdGggMjQ1MA0KL0hlaWdodCAzMjAwDQovQml0
c1BlckNvbXBvbmVudCA4DQovQ29sb3JTcGFjZS9EZXZpY2VSR0INCi9MZW5ndGggMTQxNDg3DQo+
Pg0Kc3RyZWFtDQr/2P/gABBKRklGAAEBAQBgAGAAAP/bAEMAyIqWr5Z9yK+jr+HVyO7/////////
///////////////////////////////////////////////////////////bAEMB1eHh////////
///////////////////////////////////////////////////////////////////////////A
ABEIDIAJkgMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAAC
AQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZ
GiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOU
lZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T1
9vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAAB
.....
continua
Quisiera saber en qué forma está codificada esta información?
Para resumir y si alguien pudiera darme una mano. Lo que necesito hacer es leer un archivo pdf y codificarlo en base64 para ser enviado a un WS.
Muchas gracias