284 lines
20 KiB
Plaintext
284 lines
20 KiB
Plaintext
type DocxComponents = class(TSComponentsBase)
|
|
uses DocxML, DrawingML, SharedML;
|
|
public
|
|
function Create();
|
|
function Init();override;
|
|
|
|
property Rels read ReadRels;
|
|
property App read ReadApp;
|
|
property Core read ReadCore;
|
|
property DocumentRels read ReadDocumentRels;
|
|
property Themes read ReadThemes;
|
|
property Document read ReadDocument;
|
|
property Endnotes read ReadEndnotes;
|
|
property FontTable read ReadFontTable;
|
|
property Footnotes read ReadFootnotes;
|
|
property Settings read ReadSettings;
|
|
property Styles read ReadStyles;
|
|
property WebSettings read ReadWebSettings;
|
|
property ContentTypes read ReadContentTypes;
|
|
property ChartRels read ReadChartRels;
|
|
property Charts read ReadCharts;
|
|
property Comments read ReadComments;
|
|
property Footers read ReadFooters;
|
|
property Headers read ReadHeaders;
|
|
property Numbering read ReadNumbering;
|
|
property FooterRels read ReadFooterRels;
|
|
property HeaderRels read ReadHeaderReals;
|
|
function ReadRels();
|
|
function ReadApp();
|
|
function ReadCore();
|
|
function ReadDocumentRels();
|
|
function ReadThemes(_index);
|
|
function ReadDocument();
|
|
function ReadEndnotes();
|
|
function ReadFontTable();
|
|
function ReadFootnotes();
|
|
function ReadSettings();
|
|
function ReadStyles();
|
|
function ReadWebSettings();
|
|
function ReadContentTypes();
|
|
function ReadChartRels(_index: integer);
|
|
function ReadCharts(_index: integer);
|
|
function ReadComments();
|
|
function ReadFooters(_index: integer);
|
|
function ReadHeaders(_index: integer);
|
|
function ReadNumbering();
|
|
function ReadFooterRels(_index: integer);
|
|
function ReadHeaderReals(_index: integer);
|
|
|
|
protected
|
|
function DefaultBinaryData(): binary;override;
|
|
function NewObject(_name: string): tslobj;override;
|
|
|
|
private
|
|
|
|
// xml
|
|
rels_: Relationships;
|
|
app_: Properties;
|
|
core_: CoreProperties;
|
|
document_rels_: Relationships;
|
|
theme_array_: array of Theme;
|
|
document_: Document;
|
|
endnotes_: Endnotes;
|
|
font_table_: FontTable;
|
|
footnotes_: Footnotes;
|
|
settings_: Settings;
|
|
styles_: Styles;
|
|
web_settings_: WebSettings;
|
|
content_types_: Types;
|
|
chart_rels_array_: array of Relationships;
|
|
chart_array_: array of ChartSpace;
|
|
comments_: Comments;
|
|
footer_array_: array of Ftr;
|
|
header_array_: array of Hdr;
|
|
numbering_: Numbering;
|
|
header_rels_array_: array of Relationships;
|
|
footer_rels_array_: array of Relationships;
|
|
|
|
end;
|
|
|
|
function DocxComponents.Create();
|
|
begin
|
|
inherited;
|
|
end;
|
|
|
|
function DocxComponents.Init();override;
|
|
begin
|
|
conf_ := array
|
|
(
|
|
"rels": array("_rels/.rels", "Relationships"),
|
|
"app": array("docProps/app.xml", "Properties"),
|
|
"core": array("docProps/core.xml", "cp:coreProperties"),
|
|
"document_rels": array("word/_rels/document.xml.rels", "Relationships"),
|
|
"theme": array("word/theme/theme%d.xml", "a:theme"),
|
|
"document": array("word/document.xml", "w:document"),
|
|
"endnotes": array("word/endnotes.xml", "w:endnotes"),
|
|
"font_table": array("word/fontTable.xml", "w:fonts"),
|
|
"footnotes": array("word/footnotes.xml", "w:footnotes"),
|
|
"settings": array("word/settings.xml", "w:settings"),
|
|
"styles": array("word/styles.xml", "w:styles"),
|
|
"web_settings": array("word/webSettings.xml", "w:webSettings"),
|
|
"content_types": array("[Content_Types].xml", "Types"),
|
|
"chart_rels": array("word/charts/_rels/chart%d.xml.rels", "Relationships"),
|
|
"chart": array("word/charts/chart%d.xml", "a:chartSpace"),
|
|
"comments": array("word/comments.xml", "w:comments"),
|
|
"footer": array("word/footer%d.xml", "w:ftr"),
|
|
"header": array("word/header%d.xml", "w:hdr"),
|
|
"numbering": array("word/numbering.xml", "w:numbering"),
|
|
"header_rels": array("word/_rels/header%d.xml.rels", "Relationships"),
|
|
"footer_rels": array("word/_rels/footer%d.xml.rels", "Relationships"),
|
|
);
|
|
rels_ := nil;
|
|
app_ := nil;
|
|
core_ := nil;
|
|
document_rels_ := nil;
|
|
theme_array_ := array();
|
|
document_ := nil;
|
|
endnotes_ := nil;
|
|
font_table_ := nil;
|
|
footnotes_ := nil;
|
|
settings_ := nil;
|
|
styles_ := nil;
|
|
web_settings_ := nil;
|
|
content_types_ := nil;
|
|
chart_rels_array_ := array();
|
|
comments_ := nil;
|
|
footer_array_ := array();
|
|
header_array_ := array();
|
|
numbering_ := nil;
|
|
header_rels_array_ := array();
|
|
footer_rels_array_ := array();
|
|
end;
|
|
|
|
function DocxComponents.NewObject(_name: string): tslobj;override;
|
|
begin
|
|
case _name of
|
|
"rels", "document_rels", "chart_rels", "footer_rels", "header_rels":
|
|
return new Relationships();
|
|
"app":
|
|
return new Properties();
|
|
"core":
|
|
return new CoreProperties();
|
|
"document":
|
|
return new Document();
|
|
"endnotes":
|
|
return new Endnotes();
|
|
"font_table":
|
|
return new FontTable();
|
|
"footnotes":
|
|
return new Footnotes();
|
|
"settings":
|
|
return new Settings();
|
|
"styles":
|
|
return new Styles();
|
|
"web_settings":
|
|
return new WebSettings();
|
|
"content_types":
|
|
return new Types();
|
|
"chart":
|
|
return new ChartSpace();
|
|
"comments":
|
|
return new Comments();
|
|
"footer":
|
|
return new Ftr();
|
|
"header":
|
|
return new Hdr();
|
|
"numbering":
|
|
return new Numbering();
|
|
"theme":
|
|
return new Theme();
|
|
end;
|
|
end;
|
|
|
|
function DocxComponents.ReadRels();
|
|
begin
|
|
return {self.}GetProp(rels_, "rels");
|
|
end;
|
|
|
|
function DocxComponents.ReadApp();
|
|
begin
|
|
return {self.}GetProp(app_, "app");
|
|
end;
|
|
|
|
function DocxComponents.ReadCore();
|
|
begin
|
|
return {self.}GetProp(core_, "core");
|
|
end;
|
|
|
|
function DocxComponents.ReadDocumentRels();
|
|
begin
|
|
return {self.}GetProp(document_rels_, "document_rels");
|
|
end;
|
|
|
|
function DocxComponents.ReadDocument();
|
|
begin
|
|
return {self.}GetProp(document_, "document");
|
|
end;
|
|
|
|
function DocxComponents.ReadEndnotes();
|
|
begin
|
|
return {self.}GetProp(endnotes_, "endnotes");
|
|
end;
|
|
|
|
function DocxComponents.ReadFontTable();
|
|
begin
|
|
return {self.}GetProp(font_table_, "font_table");
|
|
end;
|
|
|
|
function DocxComponents.ReadFootnotes();
|
|
begin
|
|
return {self.}GetProp(footnotes_, "footnotes");
|
|
end;
|
|
|
|
function DocxComponents.ReadSettings();
|
|
begin
|
|
return {self.}GetProp(settings_, "settings");
|
|
end;
|
|
|
|
function DocxComponents.ReadStyles();
|
|
begin
|
|
return {self.}GetProp(styles_, "styles");
|
|
end;
|
|
|
|
function DocxComponents.ReadWebSettings();
|
|
begin
|
|
return {self.}GetProp(web_settings_, "web_settings");
|
|
end;
|
|
|
|
function DocxComponents.ReadThemes(_index);
|
|
begin
|
|
return {self.}GetPropArr(theme_array_, "theme", _index);
|
|
end;
|
|
|
|
function DocxComponents.ReadContentTypes();
|
|
begin
|
|
return {self.}GetProp(content_types_, "content_types");
|
|
end;
|
|
|
|
function DocxComponents.ReadChartRels(_index: integer);
|
|
begin
|
|
return {self.}GetPropArr(chart_rels_array_, "chart_rels", _index);
|
|
end;
|
|
|
|
function DocxComponents.ReadCharts(_index: integer);
|
|
begin
|
|
return {self.}GetPropArr(chart_array_, "chart", _index);
|
|
end;
|
|
|
|
function DocxComponents.ReadComments();
|
|
begin
|
|
return {self.}GetProp(comments_, "comments");
|
|
end;
|
|
|
|
function DocxComponents.ReadHeaders(_index: integer);
|
|
begin
|
|
return {self.}GetPropArr(header_array_, "header", _index);
|
|
end;
|
|
|
|
function DocxComponents.ReadFooters(_index: integer);
|
|
begin
|
|
return {self.}GetPropArr(footer_array_, "footer", _index);
|
|
end;
|
|
|
|
function DocxComponents.ReadNumbering();
|
|
begin
|
|
return {self.}GetProp(numbering_, "numbering");
|
|
end;
|
|
|
|
function DocxComponents.ReadHeaderReals(_index: integer);
|
|
begin
|
|
return {self.}GetPropArr(header_rels_array_, "header_rels", _index);
|
|
end;
|
|
|
|
function DocxComponents.ReadFooterRels(_index: integer);
|
|
begin
|
|
return {self.}GetPropArr(footer_rels_array_, "footer_rels", _index);
|
|
end;
|
|
|
|
function DocxComponents.DefaultBinaryData(): binary;override;
|
|
begin
|
|
return binary(base64ToStr("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"));
|
|
end;
|
|
|