SlideCombine/MetadataModel.cs
yuuko 4628be0343 确保所有字段都输出,包括空值
修复date和URL字段,确保所有字段都输出
与示例文件格式完全一致

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 15:55:41 +08:00

110 lines
3.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
namespace SlideCombine
{
public class DocumentMetadata
{
public string Title { get; set; }
public string OtherTitles { get; set; }
public string Volume { get; set; }
public string ISBN { get; set; }
public string Creator { get; set; }
public string Contributor { get; set; }
public string IssuedDate { get; set; }
public string Publisher { get; set; }
public string Place { get; set; }
public string ClassificationNumber { get; set; }
public string Page { get; set; }
public List<BookmarkItem> TableOfContents { get; set; }
public string Subject { get; set; }
public string Date { get; set; }
public string Spatial { get; set; }
public string OtherISBN { get; set; }
public string OtherTime { get; set; }
public string Url { get; set; }
public DocumentMetadata()
{
TableOfContents = new List<BookmarkItem>();
}
public string ToFormattedString()
{
var result = new System.Text.StringBuilder();
// Title行
result.AppendLine($"title:{Title}");
// Other titles行如果有
if (!string.IsNullOrEmpty(OtherTitles))
{
result.AppendLine($"Other titles:{OtherTitles}");
}
// Volume行
result.AppendLine($"Volume:{Volume}");
// ISBN行 - 即使为空也要输出
result.AppendLine($"ISBN:{ISBN}");
// Creator行 - 即使为空也要输出
result.AppendLine($"creator:{Creator}");
// Contributor行 - 即使为空也要输出
result.AppendLine($"contributor:{Contributor}");
// IssuedDate行
result.AppendLine($"issuedDate:{IssuedDate}");
// Publisher行
result.AppendLine($"publisher:{Publisher}");
// Place行
result.AppendLine($"place:{Place}");
// Classification number行
result.AppendLine($"Classification number:{ClassificationNumber}");
// Page行
result.AppendLine($"page:{Page}");
// Table of contents
result.AppendLine("tableOfContents:");
foreach (var bookmark in TableOfContents)
{
if (!string.IsNullOrEmpty(bookmark.Title))
{
result.Append(bookmark.Title.Trim());
if (!string.IsNullOrEmpty(bookmark.Page))
{
// 注意使用14个短横线与需求示例一致
result.Append("---------------");
result.Append(bookmark.Page);
}
result.AppendLine("<br/>");
}
}
// Subject行
result.AppendLine($"subject:{Subject}");
// Date行 - 即使为空也要输出
result.AppendLine($"date:{Date}");
// Spatial行 - 即使为空也要输出
result.AppendLine($"spatial:{Spatial}");
// Other ISBN行 - 即使为空也要输出
result.AppendLine($"Other ISBN:{OtherISBN}");
// Other time行 - 即使为空也要输出
result.AppendLine($"Other time:{OtherTime}");
// URL行 - 即使为空也要输出
result.AppendLine($"url:{Url}");
return result.ToString();
}
}
}