本文整理汇总了C++中Doc::GetProperty方法的典型用法代码示例。如果您正苦于以下问题:C++ Doc::GetProperty方法的具体用法?C++ Doc::GetProperty怎么用?C++ Doc::GetProperty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Doc
的用法示例。
在下文中一共展示了Doc::GetProperty方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetProps
static void GetProps(Doc doc, PropertiesLayout *layoutData, DisplayModel *dm, bool extended)
{
CrashIf(!doc.IsEngine() && !doc.IsEbook());
DocType engineType = doc.GetDocType();
WCHAR *str = str::Dup(gPluginMode ? gPluginURL : doc.GetFilePath());
layoutData->AddProperty(_TR("File:"), str);
str = doc.GetProperty(Prop_Title);
layoutData->AddProperty(_TR("Title:"), str);
str = doc.GetProperty(Prop_Subject);
layoutData->AddProperty(_TR("Subject:"), str);
str = doc.GetProperty(Prop_Author);
layoutData->AddProperty(_TR("Author:"), str);
str = doc.GetProperty(Prop_Copyright);
layoutData->AddProperty(_TR("Copyright:"), str);
str = doc.GetProperty(Prop_CreationDate);
if (Engine_PDF == engineType)
ConvDateToDisplay(&str, PdfDateParse);
else if (Engine_XPS == engineType)
ConvDateToDisplay(&str, IsoDateParse);
else if (Engine_Epub == engineType || Doc_Epub == engineType)
ConvDateToDisplay(&str, IsoDateParse);
else if (Engine_Mobi == engineType || Doc_Mobi == engineType)
ConvDateToDisplay(&str, IsoDateParse);
layoutData->AddProperty(_TR("Created:"), str);
str = doc.GetProperty(Prop_ModificationDate);
if (Engine_PDF == engineType)
ConvDateToDisplay(&str, PdfDateParse);
else if (Engine_XPS == engineType)
ConvDateToDisplay(&str, IsoDateParse);
else if (Engine_Epub == engineType || Doc_Epub == engineType)
ConvDateToDisplay(&str, IsoDateParse);
else if (Engine_Mobi == engineType || Doc_Mobi == engineType)
ConvDateToDisplay(&str, IsoDateParse);
layoutData->AddProperty(_TR("Modified:"), str);
str = doc.GetProperty(Prop_CreatorApp);
layoutData->AddProperty(_TR("Application:"), str);
str = doc.GetProperty(Prop_PdfProducer);
// TODO: remove PDF from string
layoutData->AddProperty(_TR("PDF Producer:"), str);
str = doc.GetProperty(Prop_PdfVersion);
layoutData->AddProperty(_TR("PDF Version:"), str);
str = FormatPdfFileStructure(doc);
layoutData->AddProperty(_TR("PDF Optimizations:"), str);
size_t fileSize = file::GetSize(doc.GetFilePath());
if (fileSize == INVALID_FILE_SIZE && doc.IsEngine())
free(doc.AsEngine()->GetFileData(&fileSize));
if (fileSize != INVALID_FILE_SIZE) {
str = FormatFileSize(fileSize);
layoutData->AddProperty(_TR("File Size:"), str);
}
if (doc.IsEngine()) {
str = str::Format(L"%d", doc.AsEngine()->PageCount());
layoutData->AddProperty(_TR("Number of Pages:"), str);
}
if (dm && dm->engineType != Engine_Chm) {
str = FormatPageSize(dm->engine, dm->CurrentPageNo(), dm->Rotation());
if (IsUIRightToLeft() && IsVistaOrGreater()) {
// ensure that the size remains ungarbled left-to-right
// (note: XP doesn't know about \u202A...\u202C)
str = str::Format(L"\u202A%s\u202C", ScopedMem<WCHAR>(str));
}
layoutData->AddProperty(_TR("Page Size:"), str);
}
str = FormatPermissions(doc);
layoutData->AddProperty(_TR("Denied Permissions:"), str);
#if defined(DEBUG) || defined(ENABLE_EXTENDED_PROPERTIES)
if (extended) {
// TODO: FontList extraction can take a while
str = doc.GetProperty(Prop_FontList);
if (str) {
// add a space between basic and extended file properties
layoutData->AddProperty(L" ", str::Dup(L" "));
}
layoutData->AddProperty(_TR("Fonts:"), str);
}
#endif
}