Jar格式电子书转换成Txt 电子书格式转换器下载

这几天在做电子书阅读器的多种格式支持。
分析了下Jar格式的电子书。
首先用7-zip打开Jar文件,神奇般的发现,原来jar就是使用的zip压缩格式,解压后发现了一堆的class,png和无后缀文件。
class文件不说都知道是Java执行文件,png是图片,那么文字只可能是无后缀的文件了,用记事本打开,乱码,那么就不是ANSI了,考虑到Java的跨平台特性,测试了下UTF-8和Unicode,发现采用了Unicode格式,这样就好办了。
首先解压所有无后缀文件,然后按照文件名顺序依次以WideString方式读入,最后合并字符串即可完成。
为我写的阅读器写的jar格式插件代码如下:
library Project1;

uses
SysUtils,
Windows,
VCLUnZip,
Classes;
{$R *.res}


function GetTempDir: String;//获取系统临时目录
var
Buffer: array[0..MAX_PATH] of Char;
begin
GetTempPath(SizeOf(Buffer) - 1, Buffer);
Result := StrPas(Buffer);
end;

function GetTempName: String;//生成一个临时文件名
var
p,f: array[0..MAX_PATH] of Char;
begin
GetTempPath(MAX_PATH, p);
randomize;
GetTempFileName(p,'~jar',random(10000),f);
result:=f;
end;


function PluginType(Ver:integer):PChar;//插件类型
begin
result:=pchar('FileOpen');
end;

function UrlPosition(Ver:integer):Pchar;//文件名位置
begin
result:=pchar('end');
end;

function UrlKeyWord(Ver:integer):Pchar;//后缀或前缀
begin
result:=pchar('.jar');
end;

functionReadExtFile(Filename:Pchar):Pchar;//读取开始
var
unzip: TVCLUnZip;
i:integer;
TS:TStringList;
WS:WideString;
TempWide:WideString;
FS:TMemoryStream;
MyFilename:string;
begin
MyFilename:=Filename;
try
unzip:=TVCLUnzip.Create(nil);
unzip.ZipName:=MyFilename;
UnZip.ReadZip;
TS:=TStringList.Create;
for I := 0 to unzip.Count - 1 do
if(pos('.',unzip.filename[i])=0)and(unzip.Filename[i]<>'')then
begin
TS.Add(unzip.Filename[i]);
UnZip.FilesList.Add(UnZip.Filename[i] );
end;
UnZip.DoAll:=false;
UnZip.DestDir:=GetTempDir;//指定目录
UnZip.RecreateDirs := True;
UnZip.RetainAttributes := True;
UnZip.UnZip;
Jar格式电子书转换成Txt 电子书格式转换器下载
if TS[0]='0' then
begin
DeleteFile(pchar(GetTempDir+'0'));
TS.Delete(0);
end;
WS:='';
for I := 0 to TS.Count - 1 do
begin
FS:=TMemoryStream.Create;
FS.LoadFromFile(GetTempDir+TS[i]);
DeleteFile(pchar(GetTempDir+TS[i]));
SetLength(TempWide,(Fs.Size) div 2);
Fs.Read(TempWide[1],Fs.Size);
WS:=WS+TempWide;
FS.Free;
end;
UnZip.Free;
TS.Text:=AnsiString(WS);
MyFilename:=GetTempName;
TS.SaveToFile(MyFilename);
TS.Free;
except
UnZip.Free;
Result:=PChar('');
exit;
end;
Result:=PChar(MyFilename);
end;

exports
PluginType ,UrlPosition ,UrlKeyWord ,ReadExtFile;

begin
end.

  

爱华网本文地址 » http://www.aihuau.com/a/25101013/160623.html

更多阅读

怎么把doc转换成txt 精 doc格式转换txt

有时候doc文件需要转换成txt文档,特别是手机看小说时用txt比较方便些。一些其他影音设备,电子书、MP4、MP5之类的看小说等大都支持txt文件,所以小编今天和大家分享一下把doc转换成txt的方法,如下:怎么把doc转换成txt 精——工具/原料wor

怎样把xv转换成rmvb? xv格式转换器

怎样把xv转换成rmvb?——简介为什么xv格式文件不能在大多播放器中播放,转换格式视频时也无法转换,xv是什么格式?格式名为xv的视频文件是用迅雷看看看视频或电影时的缓存文件;或者是在迅雷下载频道下载的一些视频格式。由于版权的关系,这些

pdf格式转换器使用方法 pdf格式转换器

pdf格式转换器使用方法——简介PDF格式转换成WORD、excel、PPT等,可以使用工具进行转换。根据不同的PDF制作的格式,可以使用不同的工具进行转换pdf格式转换器使用方法——工具/原料AnyBizSoft PDF Converter V2.5 Solid Converter P

rm转mp3,怎么将rm转换成mp3? rm转mp3格式转换器

rm是流媒体视频格式文件,而mp3是一个音频数据压缩格式文件。而将rm转mp3,则就是将视频格式转换成音频格式。支持将视频格式转换成音频格式的转换器软件,如全能格式转换器就是一款多功能的转换器软件,既可以转换音视频文件,也可将视频转换

声明:《Jar格式电子书转换成Txt 电子书格式转换器下载》为网友假装白了头分享!如侵犯到您的合法权益请联系我们删除