1

NOTE: Delphi XE8, Firemonkey App for Android 4.4.2

I am trying to open a pdf document from Android App made with Firemonkey and only open the Adobe Acrobat, but the file doesn't, then I have found online in several webpages and I have tried every one of them, but no one works.

The error message is

Adobe can't find the document to open

But the document is in a public folder, and I have moved it for differents folder and nothing happend.

I have opened images from other folders without problem, I don't understand.

Can anybody give me a solution please?.

procedure TForm1.bttnAbrirClick(Sender: TObject);
var
NombreFichero,
RutaRaiz,
Ruta_Fichero,
Ruta_Fichero2    : String;

begin

// NombreFichero     := 'Doc1.pdf';

//  RutaRaiz          := 'File:///storage/emulated/0/TabletBigger/Images/Articulos';
//   RutaRaiz          := '/storage/emulated/0/TabletBigger/Images/Articulos';
// RutaRaiz          := '/storage/sdcard0/TabletBigger/Images/Articulos';         // en mi tablet
//  Ruta_Fichero      := System.IOUtils.TPath.Combine(RutaRaiz, NombreFichero);
//  Ruta_Fichero      := System.IOUtils.TPath.Combine(System.IOUtils.TPath.GetDownloadsPath, NombreFichero);
// Ruta_Fichero      := System.IOUtils.TPath.Combine(System.IOUtils.TPath.GetSharedDownloadsPath, RutaRaiz);

  NombreFichero      := 'Introduccion.pdf';
  Ruta_Fichero2      := '/storage/emulated/0/TabletBigger/Images/Articulos/Introduccion.pdf';
  Ruta_Fichero       := System.IOUtils.TPath.Combine(System.IOUtils.TPath.GetPublicPath, NombreFichero);

  showtext.Text :=  Ruta_Fichero;

  open(Ruta_Fichero);

   // Ruta_Fichero :=  StringReplace(StringReplace( Ruta_Fichero, '\', '\\', [rfReplaceAll]), '"', '\"', [rfReplaceAll]) + '"';
   //_system(PAnsiChar('Open ' + AnsiString(Ruta_Fichero)))

end;


procedure TForm1.Open(Ruta_Fichero : String);
var
  Intent: JIntent;
begin

if FileExists(Ruta_Fichero) then
begin
    Intent := TJIntent.Create;
    Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
    Intent.setDataAndType(StrToJURI(Ruta_Fichero), StringToJString('application/pdf'));
    Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_CLEAR_TOP);
    try
      SharedActivity.startActivity(Intent);
    Except

    end;

end
else
  _MessageDlg('El fichero no existe', mssInf);

end;
1

1 Answer 1

1

¡Solve it !

the good answer I founded at: Delphi open PDF from ios/Android local storage

by afzalali15.

I'll try to Upload the whole code .

Thanks anyway.

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.