fpspreadsheet: Add new metadata item "subject"

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7590 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2020-07-29 21:11:36 +00:00
parent 66733bb6a8
commit 3959cbbe45
5 changed files with 30 additions and 1 deletions

View File

@ -66,6 +66,7 @@ begin
book.MetaData.DateLastModified := Now();
book.MetaData.LastModifiedBy := 'Dagobert Duck';
book.MetaData.Title := 'Test of metadata äöü';
book.Metadata.Subject := 'FPSpreadsheet demos';
book.MetaData.Comments.Add('This is a test of spreadsheet metadata.');
book.MetaData.Comments.Add('Assign the author to the field CreatedBy.');
book.MetaData.Comments.Add('Assign the creation date to the field CreatedAt.');
@ -93,6 +94,7 @@ begin
WriteLn('Modified by : ', book.MetaData.LastModifiedBy);
WriteLn('Date last modified : ', DateTimeToStr(book.MetaData.DateLastModified));
WriteLn('Title : ', book.MetaData.Title);
WriteLn('Subject : ', book.MetaData.Subject);
WriteLn('Keywords : ', book.MetaData.Keywords.CommaText);
WriteLn('Comments: ');
WriteLn(book.MetaData.Comments.Text);

View File

@ -1990,6 +1990,8 @@ begin
book.MetaData.Comments.Text := s;
'dc:title':
book.MetaData.Title := s;
'dc:subject':
book.Metadata.Subject := s;
end;
ANode := ANode.NextSibling;
end;
@ -5868,6 +5870,13 @@ begin
'<dc:title>%s</dc:title>', [s]));
end;
if book.Metadata.Subject <> '' then
begin
s := book.Metadata.Subject;
AppendToStream(FSMeta, Format(
'<dc:subject>%s</dc:subject>', [s]));
end;
if book.Metadata.CreatedBy <> '' then
AppendToStream(FSMeta, Format(
'<meta:initial-creator>%s</meta:initial-creator>', [book.MetaData.CreatedBy]));

View File

@ -973,6 +973,7 @@ type
FDateLastModified: TDateTime;
FLastModifiedBy: String;
FTitle: String;
FSubject: String;
FComments: TStrings;
FKeywords: TStrings;
public
@ -983,6 +984,7 @@ type
property LastModifiedBy: String read FLastModifiedBy write FLastModifiedBy;
property DateCreated: TDateTime read FDateCreated write FDateCreated;
property DateLastModified: TDatetime read FDateLastModified write FDateLastModified;
property Subject: String read FSubject write FSubject;
property Title: String read FTitle write FTitle;
property Comments: TStrings read FComments write FComments;
property Keywords: TStrings read FKeywords write FKeywords;
@ -1208,7 +1210,8 @@ end;
function TsMetaData.IsEmpty: Boolean;
begin
Result := (FCreatedBy = '') and (FLastModifiedBy = '') and (FTitle = '') and
Result := (FCreatedBy = '') and (FLastModifiedBy = '') and
(FTitle = '') and (FSubject = '') and
(FComments.Count = 0) and (FKeywords.Count = 0) and
(FDateCreated = 0) and (FDateLastModified = 0);
end;

View File

@ -1121,6 +1121,8 @@ begin
case nodeName of
'Title':
book.MetaData.Title := s;
'Subject':
book.MetaData.Subject := s;
'Author':
book.MetaData.CreatedBy := s;
'LastAuthor':
@ -2721,6 +2723,7 @@ const
LE = LineEnding;
var
sTitle: String;
sSubject: String;
sAuthor: String;
sLastAuthor: String;
sDateCreated: String;
@ -2744,6 +2747,11 @@ begin
else
sTitle := '';
if book.MetaData.Subject <> '' then
sSubject := '<Subject>' + book.MetaData.Subject + '</Subject>' + LE + INDENT2
else
sSubject := '';
if book.MetaData.CreatedBy <> '' then
sAuthor := '<Author>' + book.MetaData.CreatedBy + '</Author>' + LE + INDENT2
else
@ -2773,6 +2781,7 @@ begin
AppendToStream(AStream, INDENT1 +
'<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">' + LE + INDENT2 +
sTitle +
sSubject +
sAuthor +
sLastAuthor +
sDateCreated +

View File

@ -2716,6 +2716,8 @@ begin
case nodeName of
'dc:title':
book.MetaData.Title := s;
'dc:subject':
book.MetaData.Subject := s;
'dc:creator':
book.MetaData.CreatedBy := s;
'cp:lastModifiedBy':
@ -6197,6 +6199,10 @@ begin
AppendToStream(AStream, Format(
'<dc:title>%s</dc:title>', [UTF8TextToXMLText(book.MetaData.Title)]));
if book.MetaData.Subject <> '' then
AppendToStream(AStream, Format(
'<dc:subject>%s</dc:subject>', [UTF8TextToXMLText(book.Metadata.Subject)]));
if book.MetaData.CreatedBy <> '' then
AppendToStream(AStream, Format(
'<dc:creator>%s</dc:creator>', [UTF8TextToXMLText(book.MetaData.CreatedBy)]));