2Pascal-新时代的Pascal
标题:
fmx Delphi Android环境下打开PDF格式文件,如果你是高手就忽....
[打印本页]
作者:
wangshun_pj
时间:
2019-2-17 06:10
标题:
fmx Delphi Android环境下打开PDF格式文件,如果你是高手就忽....
本帖最后由 wangshun_pj 于 2019-2-18 06:44 编辑
在Android环境下打开PDF格式文件,网上有专门的控件可以直接打开需要
花钱买
,在ios中也可以用Webbrowse打开,
我研究了一下,最后采用的一个免费的,虽然打开时需要借助第三方,毕竟是实现了功能。
首先,从服务器上下载文件到手机,
然后,打开手机中的文件。
------------------------------------------------------------------------------
第三方提供的是
UExternalFileViewer, 还有openUrl()方法,但我实验没有成功。
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation,
FMX.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
function downloadFile(sUrl, fileName: string): string;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
uses
System.IOUtils,UExternalFileViewer,IdHTTP;
procedure TForm1.Button1Click(Sender: TObject);
var
sUrl,sFile, fileName: string;
FViewer: TExternalFileViewer;
begin
FViewer := TExternalFileViewer.Factory(self, self);
//服务器中的文件
sUrl := 'http://192.168.0.159/pj/qx/public/upload/2019-02-15/ww.pdf' ;
sFile := downloadFile(sUrl,fileName); //将文件保存手机中
//打开手机中的本地文件
FViewer.OpenFile(sFile);
end;
function TForm1.downloadFile(sUrl,fileName: string): string;
var
sFile: string;
FIdHttp : TIdHTTP;
filestream:TFileStream;
Stream: TStream;
begin
//sUrl := 'http://192.168.0.159/pj/qx/public/upload/2019-02-15/5c66376b76560.pdf' ;
FIdHttp := TIdHTTP.Create(nil);
Stream := TStringStream.Create('');
sFile := TPath.Combine(TPath.GetDocumentsPath, fileName); //存在手机的文件位置
filestream := TFileStream.Create(sFile, fmCreate or fmShareDenyWrite);
try
FIdHttp.Get(sUrl,Stream);
Stream.Position := 0;
filestream.CopyFrom(Stream, Stream.Size); //保存
result := sFile;//返回本地的路径和文件名
finally
FreeAndNil(filestream);
Stream.Free;
FIdHttp.Disconnect;
end
end;
end.
欢迎光临 2Pascal-新时代的Pascal (http://2pascal.com/)
Powered by Discuz! X3