├── .gitignore ├── epubInspector.PNG ├── example ├── project.ico ├── project.res ├── epub_pk.pas ├── project.lpr ├── main.pas ├── project.lpi ├── main.lfm ├── epub.pas └── epub_pk.lpk ├── source ├── epub_pk.pas ├── epub.pas └── epub_pk.lpk ├── README.md └── LICENSE /.gitignore: -------------------------------------------------------------------------------- 1 | source/lib/* 2 | source/backup/* 3 | *.bak 4 | -------------------------------------------------------------------------------- /epubInspector.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MFernstrom/fpc-epub/HEAD/epubInspector.PNG -------------------------------------------------------------------------------- /example/project.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MFernstrom/fpc-epub/HEAD/example/project.ico -------------------------------------------------------------------------------- /example/project.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MFernstrom/fpc-epub/HEAD/example/project.res -------------------------------------------------------------------------------- /example/epub_pk.pas: -------------------------------------------------------------------------------- 1 | { This file was automatically created by Lazarus. Do not edit! 2 | This source is only used to compile and install the package. 3 | } 4 | 5 | unit epub_pk; 6 | 7 | {$warn 5023 off : no warning about unused units} 8 | interface 9 | 10 | uses 11 | epub; 12 | 13 | implementation 14 | 15 | end. 16 | -------------------------------------------------------------------------------- /source/epub_pk.pas: -------------------------------------------------------------------------------- 1 | { This file was automatically created by Lazarus. Do not edit! 2 | This source is only used to compile and install the package. 3 | } 4 | 5 | unit epub_pk; 6 | 7 | {$warn 5023 off : no warning about unused units} 8 | interface 9 | 10 | uses 11 | epub; 12 | 13 | implementation 14 | 15 | end. 16 | -------------------------------------------------------------------------------- /example/project.lpr: -------------------------------------------------------------------------------- 1 | program project; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | uses 6 | {$IFDEF UNIX}{$IFDEF UseCThreads} 7 | cthreads, 8 | {$ENDIF}{$ENDIF} 9 | Interfaces, // this includes the LCL widgetset 10 | Forms, main; 11 | 12 | {$R *.res} 13 | 14 | begin 15 | RequireDerivedFormResource := True; 16 | Application.Title := 'ePub inspector'; 17 | Application.Scaled := True; 18 | Application.Initialize; 19 | Application.CreateForm(TForm1, Form1); 20 | Application.Run; 21 | end. 22 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # fpc-epub 2 | FreePascal/Lazarus unit for pulling metadata out of ePub files 3 | 4 | ## Use 5 | 1. Add `epub_pk` package to your project 6 | 2. Add `epub` to your `uses` clause 7 | 3. Initialize `epub := TEpubHandler.Create;` 8 | 4. Load an ePub file ` epub.LoadFromFile('path/to/file');` 9 | 5. Extract some data `epub.MetaData.title` 10 | 11 | ## Available Metadata 12 | * identifier 13 | * title 14 | * language 15 | * creator 16 | * date 17 | * publisher 18 | * rights 19 | * subject 20 | * coverImage 21 | 22 | ## Example application 23 | Source folder contains a Lazarus example project. 24 | 25 | 26 | -------------------------------------------------------------------------------- /example/main.pas: -------------------------------------------------------------------------------- 1 | unit main; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls, 9 | epub; 10 | 11 | type 12 | 13 | { TForm1 } 14 | 15 | TForm1 = class(TForm) 16 | LoadEpubButton: TButton; 17 | CoverImage: TImage; 18 | IdentifierEdit: TLabeledEdit; 19 | epubDialog: TOpenDialog; 20 | TitleEdit: TLabeledEdit; 21 | LanguageEdit: TLabeledEdit; 22 | CreatorEdit: TLabeledEdit; 23 | DateEdit: TLabeledEdit; 24 | PublisherEdit: TLabeledEdit; 25 | RightsEdit: TLabeledEdit; 26 | SubjectEdit: TLabeledEdit; 27 | epub: TEpubHandler; 28 | procedure LoadEpubButtonClick(Sender: TObject); 29 | procedure FormCreate(Sender: TObject); 30 | procedure UpdateFormData; 31 | private 32 | 33 | public 34 | 35 | end; 36 | 37 | var 38 | Form1: TForm1; 39 | 40 | implementation 41 | 42 | {$R *.lfm} 43 | 44 | { TForm1 } 45 | 46 | procedure TForm1.FormCreate(Sender: TObject); 47 | begin 48 | epub := TEpubHandler.Create; 49 | end; 50 | 51 | procedure TForm1.UpdateFormData; 52 | begin 53 | IdentifierEdit.Text := epub.MetaData.identifier; 54 | TitleEdit.Text := epub.MetaData.title; 55 | LanguageEdit.Text := epub.MetaData.language; 56 | CreatorEdit.Text := epub.MetaData.creator; 57 | DateEdit.Text := epub.MetaData.date; 58 | PublisherEdit.Text := epub.MetaData.publisher; 59 | RightsEdit.Text := epub.MetaData.rights; 60 | SubjectEdit.Text := epub.MetaData.subject; 61 | CoverImage.Picture.LoadFromFile(epub.CoverImage); 62 | end; 63 | 64 | procedure TForm1.LoadEpubButtonClick(Sender: TObject); 65 | begin 66 | if epubDialog.Execute then begin 67 | epub.LoadFromFile(epubDialog.FileName); 68 | UpdateFormData; 69 | end; 70 | end; 71 | 72 | end. 73 | 74 | -------------------------------------------------------------------------------- /example/project.lpi: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | <Scaled Value="True"/> 11 | <ResourceType Value="res"/> 12 | <UseXPManifest Value="True"/> 13 | <XPManifest> 14 | <DpiAware Value="True"/> 15 | <TextName Value="MarcusFernstrom.ePubInspector"/> 16 | <TextDesc Value="A sample program for using the epub unit"/> 17 | </XPManifest> 18 | <Icon Value="0"/> 19 | </General> 20 | <BuildModes Count="1"> 21 | <Item1 Name="Default" Default="True"/> 22 | </BuildModes> 23 | <PublishOptions> 24 | <Version Value="2"/> 25 | <DestinationDirectory Value=""/> 26 | <CompressFinally Value="False"/> 27 | <UseFileFilters Value="True"/> 28 | </PublishOptions> 29 | <RunParams> 30 | <FormatVersion Value="2"/> 31 | <Modes Count="0"/> 32 | </RunParams> 33 | <RequiredPackages Count="2"> 34 | <Item1> 35 | <PackageName Value="epub_pk"/> 36 | </Item1> 37 | <Item2> 38 | <PackageName Value="LCL"/> 39 | </Item2> 40 | </RequiredPackages> 41 | <Units Count="2"> 42 | <Unit0> 43 | <Filename Value="project.lpr"/> 44 | <IsPartOfProject Value="True"/> 45 | </Unit0> 46 | <Unit1> 47 | <Filename Value="main.pas"/> 48 | <IsPartOfProject Value="True"/> 49 | <ComponentName Value="Form1"/> 50 | <HasResources Value="True"/> 51 | <ResourceBaseClass Value="Form"/> 52 | </Unit1> 53 | </Units> 54 | </ProjectOptions> 55 | <CompilerOptions> 56 | <Version Value="11"/> 57 | <PathDelim Value="\"/> 58 | <Target> 59 | <Filename Value="project"/> 60 | </Target> 61 | <SearchPaths> 62 | <IncludeFiles Value="$(ProjOutDir)"/> 63 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 64 | </SearchPaths> 65 | <Linking> 66 | <Options> 67 | <Win32> 68 | <GraphicApplication Value="True"/> 69 | </Win32> 70 | </Options> 71 | </Linking> 72 | </CompilerOptions> 73 | </CONFIG> 74 | -------------------------------------------------------------------------------- /example/main.lfm: -------------------------------------------------------------------------------- 1 | object Form1: TForm1 2 | Left = 460 3 | Height = 481 4 | Top = 163 5 | Width = 790 6 | BorderStyle = bsSingle 7 | Caption = 'ePub inspector' 8 | ClientHeight = 481 9 | ClientWidth = 790 10 | OnCreate = FormCreate 11 | LCLVersion = '2.0.6.0' 12 | object CoverImage: TImage 13 | Left = 24 14 | Height = 377 15 | Top = 32 16 | Width = 264 17 | Proportional = True 18 | end 19 | object IdentifierEdit: TLabeledEdit 20 | Left = 328 21 | Height = 23 22 | Top = 74 23 | Width = 392 24 | EditLabel.Height = 15 25 | EditLabel.Width = 392 26 | EditLabel.Caption = 'Identifier' 27 | EditLabel.ParentColor = False 28 | TabOrder = 0 29 | end 30 | object TitleEdit: TLabeledEdit 31 | Left = 328 32 | Height = 23 33 | Top = 122 34 | Width = 392 35 | EditLabel.Height = 15 36 | EditLabel.Width = 392 37 | EditLabel.Caption = 'Title' 38 | EditLabel.ParentColor = False 39 | TabOrder = 1 40 | end 41 | object LanguageEdit: TLabeledEdit 42 | Left = 328 43 | Height = 23 44 | Top = 170 45 | Width = 392 46 | EditLabel.Height = 15 47 | EditLabel.Width = 392 48 | EditLabel.Caption = 'Language' 49 | EditLabel.ParentColor = False 50 | TabOrder = 2 51 | end 52 | object CreatorEdit: TLabeledEdit 53 | Left = 328 54 | Height = 23 55 | Top = 218 56 | Width = 392 57 | EditLabel.Height = 15 58 | EditLabel.Width = 392 59 | EditLabel.Caption = 'Creator' 60 | EditLabel.ParentColor = False 61 | TabOrder = 3 62 | end 63 | object DateEdit: TLabeledEdit 64 | Left = 328 65 | Height = 23 66 | Top = 266 67 | Width = 392 68 | EditLabel.Height = 15 69 | EditLabel.Width = 392 70 | EditLabel.Caption = 'Date' 71 | EditLabel.ParentColor = False 72 | TabOrder = 4 73 | end 74 | object PublisherEdit: TLabeledEdit 75 | Left = 328 76 | Height = 23 77 | Top = 314 78 | Width = 392 79 | EditLabel.Height = 15 80 | EditLabel.Width = 392 81 | EditLabel.Caption = 'Publisher' 82 | EditLabel.ParentColor = False 83 | TabOrder = 5 84 | end 85 | object RightsEdit: TLabeledEdit 86 | Left = 328 87 | Height = 23 88 | Top = 362 89 | Width = 392 90 | EditLabel.Height = 15 91 | EditLabel.Width = 392 92 | EditLabel.Caption = 'Rights' 93 | EditLabel.ParentColor = False 94 | TabOrder = 6 95 | end 96 | object SubjectEdit: TLabeledEdit 97 | Left = 328 98 | Height = 23 99 | Top = 410 100 | Width = 392 101 | EditLabel.Height = 15 102 | EditLabel.Width = 392 103 | EditLabel.Caption = 'Subject' 104 | EditLabel.ParentColor = False 105 | TabOrder = 7 106 | end 107 | object LoadEpubButton: TButton 108 | Left = 328 109 | Height = 25 110 | Top = 16 111 | Width = 101 112 | AutoSize = True 113 | Caption = 'Load ePub file' 114 | OnClick = LoadEpubButtonClick 115 | TabOrder = 8 116 | end 117 | object epubDialog: TOpenDialog 118 | left = 472 119 | top = 16 120 | end 121 | end 122 | -------------------------------------------------------------------------------- /example/epub.pas: -------------------------------------------------------------------------------- 1 | { 2 | Author Marcus Fernström 3 | Version 0.2.1 4 | License Apache 2.0 5 | GitHub https://github.com/MFernstrom/fpc-epub 6 | } 7 | 8 | unit epub; 9 | 10 | {$mode objfpc}{$H+}{$J-}{$M+} 11 | 12 | interface 13 | 14 | uses 15 | Classes, SysUtils, Zipper, laz2_DOM, laz2_XMLRead; 16 | 17 | type 18 | 19 | { TEpubMetaData } 20 | 21 | TEpubMetaData = class(TObject) 22 | private 23 | Fidentifier: String; 24 | Ftitle: String; 25 | Flanguage: String; 26 | Fcreator: String; 27 | Fdate: String; 28 | Fpublisher: String; 29 | Frights: String; 30 | Fsubject: String; 31 | public 32 | property identifier: String read Fidentifier write Fidentifier; 33 | property title: String read Ftitle write Ftitle; 34 | property language: String read Flanguage write Flanguage; 35 | property creator: String read Fcreator write Fcreator; 36 | property date: String read Fdate write Fdate; 37 | property publisher: String read Fpublisher write Fpublisher; 38 | property rights: String read Frights write Frights; 39 | property subject: String read Fsubject write Fsubject; 40 | end; 41 | 42 | { TEpubHandler } 43 | 44 | TEpubHandler = class(TObject) 45 | private 46 | FFilePath: String; 47 | FUnpackedFilePath: String; 48 | FRootFile: String; 49 | FMetaData: TEpubMetaData; 50 | FCoverImage: String; 51 | FDoc: TXMLDocument; 52 | RootFileNode: TDOMNode; 53 | procedure UnpackEpub(const path:String); 54 | procedure SetMetaData; 55 | procedure ClearData; 56 | function SetRootFile:Boolean; 57 | public 58 | property MetaData:TEpubMetaData read FMetaData write FMetaData; 59 | procedure LoadFromFile(const path:String); 60 | property CoverImage: String read FCoverImage write FCoverImage; 61 | constructor Create; 62 | destructor Destroy; override; 63 | end; 64 | 65 | implementation 66 | 67 | { TEpubHandler } 68 | 69 | procedure TEpubHandler.UnpackEpub(const path: String); 70 | var 71 | UnZipper: TUnZipper; 72 | begin 73 | FFilePath := path; 74 | UnZipper := TUnZipper.Create; 75 | 76 | try 77 | UnZipper.FileName := FFilePath; 78 | UnZipper.OutputPath := FUnpackedFilePath; 79 | UnZipper.Examine; 80 | UnZipper.UnZipAllFiles; 81 | finally 82 | UnZipper.Free; 83 | end; 84 | end; 85 | 86 | 87 | procedure TEpubHandler.SetMetaData; 88 | var 89 | Child: TDOMNode; 90 | begin 91 | ReadXMLFile(FDoc, FUnpackedFilePath + DirectorySeparator + FRootFile); 92 | 93 | RootFileNode := FDoc.DocumentElement.FirstChild; 94 | Child := RootFileNode.FirstChild; 95 | 96 | while Assigned(child) do begin 97 | if Child.HasChildNodes then begin 98 | case Child.NodeName of 99 | 'dc:identifier': MetaData.identifier := Child.FirstChild.NodeValue; 100 | 'dc:title': MetaData.title := Child.FirstChild.NodeValue; 101 | 'dc:language': MetaData.language := Child.FirstChild.NodeValue; 102 | 'dc:creator': MetaData.creator := Child.FirstChild.NodeValue; 103 | 'dc:date': MetaData.date := Child.FirstChild.NodeValue; 104 | 'dc:publisher': MetaData.publisher := Child.FirstChild.NodeValue; 105 | 'dc:rights': MetaData.rights := Child.FirstChild.NodeValue; 106 | 'dc:subject': MetaData.subject := Child.FirstChild.NodeValue; 107 | end; 108 | end; 109 | Child := Child.NextSibling; 110 | end; 111 | 112 | RootFileNode := RootFileNode.NextSibling; 113 | Child := RootFileNode.FirstChild; 114 | 115 | while Assigned(child) do begin 116 | if Child.Attributes.GetNamedItem('id').NodeValue = 'cover-image' then 117 | CoverImage := FUnpackedFilePath + DirectorySeparator + 'OEBPS' + DirectorySeparator + Child.Attributes.GetNamedItem('href').NodeValue; 118 | 119 | Child := Child.NextSibling; 120 | end; 121 | end; 122 | 123 | 124 | procedure TEpubHandler.ClearData; 125 | begin 126 | FFilePath := ''; 127 | FRootFile := ''; 128 | FCoverImage := ''; 129 | MetaData.identifier := ''; 130 | MetaData.title := ''; 131 | MetaData.language := ''; 132 | MetaData.creator := ''; 133 | MetaData.date := ''; 134 | MetaData.publisher := ''; 135 | MetaData.rights := ''; 136 | MetaData.subject := ''; 137 | end; 138 | 139 | 140 | function TEpubHandler.SetRootFile:Boolean; 141 | begin 142 | Result := false; 143 | 144 | try 145 | ReadXMLFile(FDoc, FUnpackedFilePath + DirectorySeparator + 'META-INF' + DirectorySeparator + 'container.xml'); 146 | RootFileNode := FDoc.DocumentElement.FirstChild; 147 | RootFileNode := RootFileNode.FirstChild; 148 | 149 | if RootFileNode.Attributes.Item[0].NodeName = 'full-path' then 150 | FRootFile := RootFileNode.Attributes.Item[0].NodeValue; 151 | 152 | Result := true; 153 | except 154 | end; 155 | end; 156 | 157 | 158 | procedure TEpubHandler.LoadFromFile(const path: String); 159 | begin 160 | ClearData; 161 | UnpackEpub(path); 162 | SetRootFile; 163 | SetMetaData; 164 | end; 165 | 166 | constructor TEpubHandler.Create; 167 | begin 168 | FUnpackedFilePath := GetTempDir(true) + 'fpepub'; 169 | MetaData := TEpubMetaData.Create; 170 | end; 171 | 172 | destructor TEpubHandler.Destroy; 173 | begin 174 | FreeAndNil(FMetaData); 175 | inherited Destroy; 176 | end; 177 | 178 | end. 179 | 180 | -------------------------------------------------------------------------------- /source/epub.pas: -------------------------------------------------------------------------------- 1 | { 2 | Author Marcus Fernström 3 | Version 0.2.1 4 | License Apache 2.0 5 | GitHub https://github.com/MFernstrom/fpc-epub 6 | } 7 | 8 | unit epub; 9 | 10 | {$mode objfpc}{$H+}{$J-}{$M+} 11 | 12 | interface 13 | 14 | uses 15 | Classes, SysUtils, Zipper, laz2_DOM, laz2_XMLRead; 16 | 17 | type 18 | 19 | { TEpubMetaData } 20 | 21 | TEpubMetaData = class(TObject) 22 | private 23 | Fidentifier: String; 24 | Ftitle: String; 25 | Flanguage: String; 26 | Fcreator: String; 27 | Fdate: String; 28 | Fpublisher: String; 29 | Frights: String; 30 | Fsubject: String; 31 | public 32 | property identifier: String read Fidentifier write Fidentifier; 33 | property title: String read Ftitle write Ftitle; 34 | property language: String read Flanguage write Flanguage; 35 | property creator: String read Fcreator write Fcreator; 36 | property date: String read Fdate write Fdate; 37 | property publisher: String read Fpublisher write Fpublisher; 38 | property rights: String read Frights write Frights; 39 | property subject: String read Fsubject write Fsubject; 40 | end; 41 | 42 | { TEpubHandler } 43 | 44 | TEpubHandler = class(TObject) 45 | private 46 | FFilePath: String; 47 | FUnpackedFilePath: String; 48 | FRootFile: String; 49 | FMetaData: TEpubMetaData; 50 | FCoverImage: String; 51 | FDoc: TXMLDocument; 52 | RootFileNode: TDOMNode; 53 | procedure UnpackEpub(const path:String); 54 | procedure SetMetaData; 55 | procedure ClearData; 56 | function SetRootFile:Boolean; 57 | public 58 | property MetaData:TEpubMetaData read FMetaData write FMetaData; 59 | procedure LoadFromFile(const path:String); 60 | property CoverImage: String read FCoverImage write FCoverImage; 61 | constructor Create; 62 | destructor Destroy; override; 63 | end; 64 | 65 | implementation 66 | 67 | { TEpubHandler } 68 | 69 | procedure TEpubHandler.UnpackEpub(const path: String); 70 | var 71 | UnZipper: TUnZipper; 72 | begin 73 | FFilePath := path; 74 | UnZipper := TUnZipper.Create; 75 | 76 | try 77 | UnZipper.FileName := FFilePath; 78 | UnZipper.OutputPath := FUnpackedFilePath; 79 | UnZipper.Examine; 80 | UnZipper.UnZipAllFiles; 81 | finally 82 | UnZipper.Free; 83 | end; 84 | end; 85 | 86 | 87 | procedure TEpubHandler.SetMetaData; 88 | var 89 | Child: TDOMNode; 90 | begin 91 | ReadXMLFile(FDoc, FUnpackedFilePath + DirectorySeparator + FRootFile); 92 | 93 | RootFileNode := FDoc.DocumentElement.FirstChild; 94 | Child := RootFileNode.FirstChild; 95 | 96 | while Assigned(child) do begin 97 | if Child.HasChildNodes then begin 98 | case Child.NodeName of 99 | 'dc:identifier': MetaData.identifier := Child.FirstChild.NodeValue; 100 | 'dc:title': MetaData.title := Child.FirstChild.NodeValue; 101 | 'dc:language': MetaData.language := Child.FirstChild.NodeValue; 102 | 'dc:creator': MetaData.creator := Child.FirstChild.NodeValue; 103 | 'dc:date': MetaData.date := Child.FirstChild.NodeValue; 104 | 'dc:publisher': MetaData.publisher := Child.FirstChild.NodeValue; 105 | 'dc:rights': MetaData.rights := Child.FirstChild.NodeValue; 106 | 'dc:subject': MetaData.subject := Child.FirstChild.NodeValue; 107 | end; 108 | end; 109 | Child := Child.NextSibling; 110 | end; 111 | 112 | RootFileNode := RootFileNode.NextSibling; 113 | Child := RootFileNode.FirstChild; 114 | 115 | while Assigned(child) do begin 116 | if Child.Attributes.GetNamedItem('id').NodeValue = 'cover-image' then 117 | CoverImage := FUnpackedFilePath + DirectorySeparator + 'OEBPS' + DirectorySeparator + Child.Attributes.GetNamedItem('href').NodeValue; 118 | 119 | Child := Child.NextSibling; 120 | end; 121 | end; 122 | 123 | 124 | procedure TEpubHandler.ClearData; 125 | begin 126 | FFilePath := ''; 127 | FRootFile := ''; 128 | FCoverImage := ''; 129 | MetaData.identifier := ''; 130 | MetaData.title := ''; 131 | MetaData.language := ''; 132 | MetaData.creator := ''; 133 | MetaData.date := ''; 134 | MetaData.publisher := ''; 135 | MetaData.rights := ''; 136 | MetaData.subject := ''; 137 | end; 138 | 139 | 140 | function TEpubHandler.SetRootFile:Boolean; 141 | begin 142 | Result := false; 143 | 144 | try 145 | ReadXMLFile(FDoc, FUnpackedFilePath + DirectorySeparator + 'META-INF' + DirectorySeparator + 'container.xml'); 146 | RootFileNode := FDoc.DocumentElement.FirstChild; 147 | RootFileNode := RootFileNode.FirstChild; 148 | 149 | if RootFileNode.Attributes.Item[0].NodeName = 'full-path' then 150 | FRootFile := RootFileNode.Attributes.Item[0].NodeValue; 151 | 152 | Result := true; 153 | except 154 | end; 155 | end; 156 | 157 | 158 | procedure TEpubHandler.LoadFromFile(const path: String); 159 | begin 160 | ClearData; 161 | UnpackEpub(path); 162 | SetRootFile; 163 | SetMetaData; 164 | end; 165 | 166 | constructor TEpubHandler.Create; 167 | begin 168 | FUnpackedFilePath := GetTempDir(true) + 'fpepub'; 169 | MetaData := TEpubMetaData.Create; 170 | end; 171 | 172 | destructor TEpubHandler.Destroy; 173 | begin 174 | FreeAndNil(FMetaData); 175 | inherited Destroy; 176 | end; 177 | 178 | end. 179 | 180 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /example/epub_pk.lpk: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <Package Version="4"> 4 | <PathDelim Value="\"/> 5 | <Name Value="epub_pk"/> 6 | <Type Value="RunTimeOnly"/> 7 | <Author Value="Marcus Fernström"/> 8 | <CompilerOptions> 9 | <Version Value="11"/> 10 | <PathDelim Value="\"/> 11 | <SearchPaths> 12 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)\"/> 13 | </SearchPaths> 14 | <Linking> 15 | <Debugging> 16 | <GenerateDebugInfo Value="False"/> 17 | </Debugging> 18 | </Linking> 19 | </CompilerOptions> 20 | <Description Value="Package for reading metadata from existing ePub files."/> 21 | <License Value=" Apache License 22 | Version 2.0, January 2004 23 | http://www.apache.org/licenses/ 24 | 25 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 26 | 27 | 1. Definitions. 28 | 29 | "License" shall mean the terms and conditions for use, reproduction, 30 | and distribution as defined by Sections 1 through 9 of this document. 31 | 32 | "Licensor" shall mean the copyright owner or entity authorized by 33 | the copyright owner that is granting the License. 34 | 35 | "Legal Entity" shall mean the union of the acting entity and all 36 | other entities that control, are controlled by, or are under common 37 | control with that entity. For the purposes of this definition, 38 | "control" means (i) the power, direct or indirect, to cause the 39 | direction or management of such entity, whether by contract or 40 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 41 | outstanding shares, or (iii) beneficial ownership of such entity. 42 | 43 | "You" (or "Your") shall mean an individual or Legal Entity 44 | exercising permissions granted by this License. 45 | 46 | "Source" form shall mean the preferred form for making modifications, 47 | including but not limited to software source code, documentation 48 | source, and configuration files. 49 | 50 | "Object" form shall mean any form resulting from mechanical 51 | transformation or translation of a Source form, including but 52 | not limited to compiled object code, generated documentation, 53 | and conversions to other media types. 54 | 55 | "Work" shall mean the work of authorship, whether in Source or 56 | Object form, made available under the License, as indicated by a 57 | copyright notice that is included in or attached to the work 58 | (an example is provided in the Appendix below). 59 | 60 | "Derivative Works" shall mean any work, whether in Source or Object 61 | form, that is based on (or derived from) the Work and for which the 62 | editorial revisions, annotations, elaborations, or other modifications 63 | represent, as a whole, an original work of authorship. For the purposes 64 | of this License, Derivative Works shall not include works that remain 65 | separable from, or merely link (or bind by name) to the interfaces of, 66 | the Work and Derivative Works thereof. 67 | 68 | "Contribution" shall mean any work of authorship, including 69 | the original version of the Work and any modifications or additions 70 | to that Work or Derivative Works thereof, that is intentionally 71 | submitted to Licensor for inclusion in the Work by the copyright owner 72 | or by an individual or Legal Entity authorized to submit on behalf of 73 | the copyright owner. For the purposes of this definition, "submitted" 74 | means any form of electronic, verbal, or written communication sent 75 | to the Licensor or its representatives, including but not limited to 76 | communication on electronic mailing lists, source code control systems, 77 | and issue tracking systems that are managed by, or on behalf of, the 78 | Licensor for the purpose of discussing and improving the Work, but 79 | excluding communication that is conspicuously marked or otherwise 80 | designated in writing by the copyright owner as "Not a Contribution." 81 | 82 | "Contributor" shall mean Licensor and any individual or Legal Entity 83 | on behalf of whom a Contribution has been received by Licensor and 84 | subsequently incorporated within the Work. 85 | 86 | 2. Grant of Copyright License. Subject to the terms and conditions of 87 | this License, each Contributor hereby grants to You a perpetual, 88 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 89 | copyright license to reproduce, prepare Derivative Works of, 90 | publicly display, publicly perform, sublicense, and distribute the 91 | Work and such Derivative Works in Source or Object form. 92 | 93 | 3. Grant of Patent License. Subject to the terms and conditions of 94 | this License, each Contributor hereby grants to You a perpetual, 95 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 96 | (except as stated in this section) patent license to make, have made, 97 | use, offer to sell, sell, import, and otherwise transfer the Work, 98 | where such license applies only to those patent claims licensable 99 | by such Contributor that are necessarily infringed by their 100 | Contribution(s) alone or by combination of their Contribution(s) 101 | with the Work to which such Contribution(s) was submitted. If You 102 | institute patent litigation against any entity (including a 103 | cross-claim or counterclaim in a lawsuit) alleging that the Work 104 | or a Contribution incorporated within the Work constitutes direct 105 | or contributory patent infringement, then any patent licenses 106 | granted to You under this License for that Work shall terminate 107 | as of the date such litigation is filed. 108 | 109 | 4. Redistribution. You may reproduce and distribute copies of the 110 | Work or Derivative Works thereof in any medium, with or without 111 | modifications, and in Source or Object form, provided that You 112 | meet the following conditions: 113 | 114 | (a) You must give any other recipients of the Work or 115 | Derivative Works a copy of this License; and 116 | 117 | (b) You must cause any modified files to carry prominent notices 118 | stating that You changed the files; and 119 | 120 | (c) You must retain, in the Source form of any Derivative Works 121 | that You distribute, all copyright, patent, trademark, and 122 | attribution notices from the Source form of the Work, 123 | excluding those notices that do not pertain to any part of 124 | the Derivative Works; and 125 | 126 | (d) If the Work includes a "NOTICE" text file as part of its 127 | distribution, then any Derivative Works that You distribute must 128 | include a readable copy of the attribution notices contained 129 | within such NOTICE file, excluding those notices that do not 130 | pertain to any part of the Derivative Works, in at least one 131 | of the following places: within a NOTICE text file distributed 132 | as part of the Derivative Works; within the Source form or 133 | documentation, if provided along with the Derivative Works; or, 134 | within a display generated by the Derivative Works, if and 135 | wherever such third-party notices normally appear. The contents 136 | of the NOTICE file are for informational purposes only and 137 | do not modify the License. You may add Your own attribution 138 | notices within Derivative Works that You distribute, alongside 139 | or as an addendum to the NOTICE text from the Work, provided 140 | that such additional attribution notices cannot be construed 141 | as modifying the License. 142 | 143 | You may add Your own copyright statement to Your modifications and 144 | may provide additional or different license terms and conditions 145 | for use, reproduction, or distribution of Your modifications, or 146 | for any such Derivative Works as a whole, provided Your use, 147 | reproduction, and distribution of the Work otherwise complies with 148 | the conditions stated in this License. 149 | 150 | 5. Submission of Contributions. Unless You explicitly state otherwise, 151 | any Contribution intentionally submitted for inclusion in the Work 152 | by You to the Licensor shall be under the terms and conditions of 153 | this License, without any additional terms or conditions. 154 | Notwithstanding the above, nothing herein shall supersede or modify 155 | the terms of any separate license agreement you may have executed 156 | with Licensor regarding such Contributions. 157 | 158 | 6. Trademarks. This License does not grant permission to use the trade 159 | names, trademarks, service marks, or product names of the Licensor, 160 | except as required for reasonable and customary use in describing the 161 | origin of the Work and reproducing the content of the NOTICE file. 162 | 163 | 7. Disclaimer of Warranty. Unless required by applicable law or 164 | agreed to in writing, Licensor provides the Work (and each 165 | Contributor provides its Contributions) on an "AS IS" BASIS, 166 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 167 | implied, including, without limitation, any warranties or conditions 168 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 169 | PARTICULAR PURPOSE. You are solely responsible for determining the 170 | appropriateness of using or redistributing the Work and assume any 171 | risks associated with Your exercise of permissions under this License. 172 | 173 | 8. Limitation of Liability. In no event and under no legal theory, 174 | whether in tort (including negligence), contract, or otherwise, 175 | unless required by applicable law (such as deliberate and grossly 176 | negligent acts) or agreed to in writing, shall any Contributor be 177 | liable to You for damages, including any direct, indirect, special, 178 | incidental, or consequential damages of any character arising as a 179 | result of this License or out of the use or inability to use the 180 | Work (including but not limited to damages for loss of goodwill, 181 | work stoppage, computer failure or malfunction, or any and all 182 | other commercial damages or losses), even if such Contributor 183 | has been advised of the possibility of such damages. 184 | 185 | 9. Accepting Warranty or Additional Liability. While redistributing 186 | the Work or Derivative Works thereof, You may choose to offer, 187 | and charge a fee for, acceptance of support, warranty, indemnity, 188 | or other liability obligations and/or rights consistent with this 189 | License. However, in accepting such obligations, You may act only 190 | on Your own behalf and on Your sole responsibility, not on behalf 191 | of any other Contributor, and only if You agree to indemnify, 192 | defend, and hold each Contributor harmless for any liability 193 | incurred by, or claims asserted against, such Contributor by reason 194 | of your accepting any such warranty or additional liability. 195 | 196 | END OF TERMS AND CONDITIONS 197 | 198 | APPENDIX: How to apply the Apache License to your work. 199 | 200 | To apply the Apache License to your work, attach the following 201 | boilerplate notice, with the fields enclosed by brackets "[]" 202 | replaced with your own identifying information. (Don't include 203 | the brackets!) The text should be enclosed in the appropriate 204 | comment syntax for the file format. We also recommend that a 205 | file or class name and description of purpose be included on the 206 | same "printed page" as the copyright notice for easier 207 | identification within third-party archives. 208 | 209 | Copyright [yyyy] [name of copyright owner] 210 | 211 | Licensed under the Apache License, Version 2.0 (the "License"); 212 | you may not use this file except in compliance with the License. 213 | You may obtain a copy of the License at 214 | 215 | http://www.apache.org/licenses/LICENSE-2.0 216 | 217 | Unless required by applicable law or agreed to in writing, software 218 | distributed under the License is distributed on an "AS IS" BASIS, 219 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 220 | See the License for the specific language governing permissions and 221 | limitations under the License."/> 222 | <Version Minor="2"/> 223 | <Files Count="1"> 224 | <Item1> 225 | <Filename Value="epub.pas"/> 226 | <UnitName Value="epub"/> 227 | </Item1> 228 | </Files> 229 | <RequiredPkgs Count="2"> 230 | <Item1> 231 | <PackageName Value="LazUtils"/> 232 | </Item1> 233 | <Item2> 234 | <PackageName Value="FCL"/> 235 | </Item2> 236 | </RequiredPkgs> 237 | <UsageOptions> 238 | <UnitPath Value="$(PkgOutDir)"/> 239 | </UsageOptions> 240 | <PublishOptions> 241 | <Version Value="2"/> 242 | <UseFileFilters Value="True"/> 243 | </PublishOptions> 244 | </Package> 245 | </CONFIG> 246 | -------------------------------------------------------------------------------- /source/epub_pk.lpk: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <Package Version="4"> 4 | <PathDelim Value="\"/> 5 | <Name Value="epub_pk"/> 6 | <Type Value="RunTimeOnly"/> 7 | <Author Value="Marcus Fernström"/> 8 | <CompilerOptions> 9 | <Version Value="11"/> 10 | <PathDelim Value="\"/> 11 | <SearchPaths> 12 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)\"/> 13 | </SearchPaths> 14 | <Linking> 15 | <Debugging> 16 | <GenerateDebugInfo Value="False"/> 17 | </Debugging> 18 | </Linking> 19 | </CompilerOptions> 20 | <Description Value="Package for reading metadata from existing ePub files."/> 21 | <License Value=" Apache License 22 | Version 2.0, January 2004 23 | http://www.apache.org/licenses/ 24 | 25 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 26 | 27 | 1. Definitions. 28 | 29 | "License" shall mean the terms and conditions for use, reproduction, 30 | and distribution as defined by Sections 1 through 9 of this document. 31 | 32 | "Licensor" shall mean the copyright owner or entity authorized by 33 | the copyright owner that is granting the License. 34 | 35 | "Legal Entity" shall mean the union of the acting entity and all 36 | other entities that control, are controlled by, or are under common 37 | control with that entity. For the purposes of this definition, 38 | "control" means (i) the power, direct or indirect, to cause the 39 | direction or management of such entity, whether by contract or 40 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 41 | outstanding shares, or (iii) beneficial ownership of such entity. 42 | 43 | "You" (or "Your") shall mean an individual or Legal Entity 44 | exercising permissions granted by this License. 45 | 46 | "Source" form shall mean the preferred form for making modifications, 47 | including but not limited to software source code, documentation 48 | source, and configuration files. 49 | 50 | "Object" form shall mean any form resulting from mechanical 51 | transformation or translation of a Source form, including but 52 | not limited to compiled object code, generated documentation, 53 | and conversions to other media types. 54 | 55 | "Work" shall mean the work of authorship, whether in Source or 56 | Object form, made available under the License, as indicated by a 57 | copyright notice that is included in or attached to the work 58 | (an example is provided in the Appendix below). 59 | 60 | "Derivative Works" shall mean any work, whether in Source or Object 61 | form, that is based on (or derived from) the Work and for which the 62 | editorial revisions, annotations, elaborations, or other modifications 63 | represent, as a whole, an original work of authorship. For the purposes 64 | of this License, Derivative Works shall not include works that remain 65 | separable from, or merely link (or bind by name) to the interfaces of, 66 | the Work and Derivative Works thereof. 67 | 68 | "Contribution" shall mean any work of authorship, including 69 | the original version of the Work and any modifications or additions 70 | to that Work or Derivative Works thereof, that is intentionally 71 | submitted to Licensor for inclusion in the Work by the copyright owner 72 | or by an individual or Legal Entity authorized to submit on behalf of 73 | the copyright owner. For the purposes of this definition, "submitted" 74 | means any form of electronic, verbal, or written communication sent 75 | to the Licensor or its representatives, including but not limited to 76 | communication on electronic mailing lists, source code control systems, 77 | and issue tracking systems that are managed by, or on behalf of, the 78 | Licensor for the purpose of discussing and improving the Work, but 79 | excluding communication that is conspicuously marked or otherwise 80 | designated in writing by the copyright owner as "Not a Contribution." 81 | 82 | "Contributor" shall mean Licensor and any individual or Legal Entity 83 | on behalf of whom a Contribution has been received by Licensor and 84 | subsequently incorporated within the Work. 85 | 86 | 2. Grant of Copyright License. Subject to the terms and conditions of 87 | this License, each Contributor hereby grants to You a perpetual, 88 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 89 | copyright license to reproduce, prepare Derivative Works of, 90 | publicly display, publicly perform, sublicense, and distribute the 91 | Work and such Derivative Works in Source or Object form. 92 | 93 | 3. Grant of Patent License. Subject to the terms and conditions of 94 | this License, each Contributor hereby grants to You a perpetual, 95 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 96 | (except as stated in this section) patent license to make, have made, 97 | use, offer to sell, sell, import, and otherwise transfer the Work, 98 | where such license applies only to those patent claims licensable 99 | by such Contributor that are necessarily infringed by their 100 | Contribution(s) alone or by combination of their Contribution(s) 101 | with the Work to which such Contribution(s) was submitted. If You 102 | institute patent litigation against any entity (including a 103 | cross-claim or counterclaim in a lawsuit) alleging that the Work 104 | or a Contribution incorporated within the Work constitutes direct 105 | or contributory patent infringement, then any patent licenses 106 | granted to You under this License for that Work shall terminate 107 | as of the date such litigation is filed. 108 | 109 | 4. Redistribution. You may reproduce and distribute copies of the 110 | Work or Derivative Works thereof in any medium, with or without 111 | modifications, and in Source or Object form, provided that You 112 | meet the following conditions: 113 | 114 | (a) You must give any other recipients of the Work or 115 | Derivative Works a copy of this License; and 116 | 117 | (b) You must cause any modified files to carry prominent notices 118 | stating that You changed the files; and 119 | 120 | (c) You must retain, in the Source form of any Derivative Works 121 | that You distribute, all copyright, patent, trademark, and 122 | attribution notices from the Source form of the Work, 123 | excluding those notices that do not pertain to any part of 124 | the Derivative Works; and 125 | 126 | (d) If the Work includes a "NOTICE" text file as part of its 127 | distribution, then any Derivative Works that You distribute must 128 | include a readable copy of the attribution notices contained 129 | within such NOTICE file, excluding those notices that do not 130 | pertain to any part of the Derivative Works, in at least one 131 | of the following places: within a NOTICE text file distributed 132 | as part of the Derivative Works; within the Source form or 133 | documentation, if provided along with the Derivative Works; or, 134 | within a display generated by the Derivative Works, if and 135 | wherever such third-party notices normally appear. The contents 136 | of the NOTICE file are for informational purposes only and 137 | do not modify the License. You may add Your own attribution 138 | notices within Derivative Works that You distribute, alongside 139 | or as an addendum to the NOTICE text from the Work, provided 140 | that such additional attribution notices cannot be construed 141 | as modifying the License. 142 | 143 | You may add Your own copyright statement to Your modifications and 144 | may provide additional or different license terms and conditions 145 | for use, reproduction, or distribution of Your modifications, or 146 | for any such Derivative Works as a whole, provided Your use, 147 | reproduction, and distribution of the Work otherwise complies with 148 | the conditions stated in this License. 149 | 150 | 5. Submission of Contributions. Unless You explicitly state otherwise, 151 | any Contribution intentionally submitted for inclusion in the Work 152 | by You to the Licensor shall be under the terms and conditions of 153 | this License, without any additional terms or conditions. 154 | Notwithstanding the above, nothing herein shall supersede or modify 155 | the terms of any separate license agreement you may have executed 156 | with Licensor regarding such Contributions. 157 | 158 | 6. Trademarks. This License does not grant permission to use the trade 159 | names, trademarks, service marks, or product names of the Licensor, 160 | except as required for reasonable and customary use in describing the 161 | origin of the Work and reproducing the content of the NOTICE file. 162 | 163 | 7. Disclaimer of Warranty. Unless required by applicable law or 164 | agreed to in writing, Licensor provides the Work (and each 165 | Contributor provides its Contributions) on an "AS IS" BASIS, 166 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 167 | implied, including, without limitation, any warranties or conditions 168 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 169 | PARTICULAR PURPOSE. You are solely responsible for determining the 170 | appropriateness of using or redistributing the Work and assume any 171 | risks associated with Your exercise of permissions under this License. 172 | 173 | 8. Limitation of Liability. In no event and under no legal theory, 174 | whether in tort (including negligence), contract, or otherwise, 175 | unless required by applicable law (such as deliberate and grossly 176 | negligent acts) or agreed to in writing, shall any Contributor be 177 | liable to You for damages, including any direct, indirect, special, 178 | incidental, or consequential damages of any character arising as a 179 | result of this License or out of the use or inability to use the 180 | Work (including but not limited to damages for loss of goodwill, 181 | work stoppage, computer failure or malfunction, or any and all 182 | other commercial damages or losses), even if such Contributor 183 | has been advised of the possibility of such damages. 184 | 185 | 9. Accepting Warranty or Additional Liability. While redistributing 186 | the Work or Derivative Works thereof, You may choose to offer, 187 | and charge a fee for, acceptance of support, warranty, indemnity, 188 | or other liability obligations and/or rights consistent with this 189 | License. However, in accepting such obligations, You may act only 190 | on Your own behalf and on Your sole responsibility, not on behalf 191 | of any other Contributor, and only if You agree to indemnify, 192 | defend, and hold each Contributor harmless for any liability 193 | incurred by, or claims asserted against, such Contributor by reason 194 | of your accepting any such warranty or additional liability. 195 | 196 | END OF TERMS AND CONDITIONS 197 | 198 | APPENDIX: How to apply the Apache License to your work. 199 | 200 | To apply the Apache License to your work, attach the following 201 | boilerplate notice, with the fields enclosed by brackets "[]" 202 | replaced with your own identifying information. (Don't include 203 | the brackets!) The text should be enclosed in the appropriate 204 | comment syntax for the file format. We also recommend that a 205 | file or class name and description of purpose be included on the 206 | same "printed page" as the copyright notice for easier 207 | identification within third-party archives. 208 | 209 | Copyright [yyyy] [name of copyright owner] 210 | 211 | Licensed under the Apache License, Version 2.0 (the "License"); 212 | you may not use this file except in compliance with the License. 213 | You may obtain a copy of the License at 214 | 215 | http://www.apache.org/licenses/LICENSE-2.0 216 | 217 | Unless required by applicable law or agreed to in writing, software 218 | distributed under the License is distributed on an "AS IS" BASIS, 219 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 220 | See the License for the specific language governing permissions and 221 | limitations under the License."/> 222 | <Version Minor="2"/> 223 | <Files Count="1"> 224 | <Item1> 225 | <Filename Value="epub.pas"/> 226 | <UnitName Value="epub"/> 227 | </Item1> 228 | </Files> 229 | <RequiredPkgs Count="2"> 230 | <Item1> 231 | <PackageName Value="LazUtils"/> 232 | </Item1> 233 | <Item2> 234 | <PackageName Value="FCL"/> 235 | </Item2> 236 | </RequiredPkgs> 237 | <UsageOptions> 238 | <UnitPath Value="$(PkgOutDir)"/> 239 | </UsageOptions> 240 | <PublishOptions> 241 | <Version Value="2"/> 242 | <UseFileFilters Value="True"/> 243 | </PublishOptions> 244 | </Package> 245 | </CONFIG> 246 | --------------------------------------------------------------------------------