从Delphi Firemonkey Code for Android App打开本地pdf文件

时间:2015-06-25 10:38:56

标签: delphi pdf document firemonkey

注意:Delphi XE8,适用于Android 4.4.2的Firemonkey应用程序

我正在尝试从使用Firemonkey制作的Android应用程序打开一个pdf文档并且只打开Adobe Acrobat,但该文件没有,然后我在几个网页上找到了我已经尝试过的每一个,但是没有一个工作。

错误消息是

  

Adob​​e无法找到要打开的文档

但是该文档位于公共文件夹中,我已将其移动到不同的文件夹,并且没有任何动静。

我已经打开了其他文件夹中没有问题的图片,我不明白。

请问有人给我解决方案吗?。

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 个答案:

答案 0 :(得分:0)

¡解决它!

我在Delphi open PDF from ios/Android local storage

创立的好答案 by afzalali15。

我会尝试上传整个代码。

非常感谢。