He probado con este código y funciona perfectamente (te adjunto el pdf resultante):
Código Delphi
[-]unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls,
System.NetEncoding;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
procedure DecodeBase64File(const inputFileName, outputFileName: string);
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
DecodeBase64File('C:\Proyectos\CodigoBinarioBase64.txt', 'c:\Proyectos\archivo_decodificado.pdf');
end;
procedure TForm1.DecodeBase64File(const inputFileName, outputFileName: string);
var
inputFileStream, outputFileStream: TFileStream;
base64Decoder: TBase64Encoding;
begin
try
inputFileStream := TFileStream.Create(inputFileName, fmOpenRead);
try
base64Decoder := TBase64Encoding.Create;
try
outputFileStream := TFileStream.Create(outputFileName, fmCreate);
try
base64Decoder.Decode(inputFileStream, outputFileStream);
finally
outputFileStream.Free;
end;
finally
base64Decoder.Free;
end;
finally
inputFileStream.Free;
end;
ShowMessage('Decodificación completa.');
except
on E: Exception do
ShowMessage('Error: ' + E.Message);
end;
end;
end.