【WPF.NET开发】OpenType字体

本文内容

  1. OpenType 字体格式
  2. 变量
  3. 大写字母
  4. 连字
  5. 花体
  6. 备用项
  7. 数字样式
  8. 版式类

本主题概述了 Windows Presentation Foundation (WPF) 中 OpenType 字体技术的一些主要功能。

1、OpenType 字体格式

OpenType 字体格式是 TrueType® 字体格式的扩展,增加了对 PostScript 字体数据的支持。 OpenType 字体格式由 Microsoft 和 Adobe Corporation 联合开发。 无论字体包含 TrueType 边框还是 CFF (PostScript) 边框,OpenType 字体和支持 OpenType 字体的操作系统服务都向用户提供一种简单的字体安装和使用方式。

OpenType 字体格式解决了以下开发人员挑战:

  • 更广泛的多平台支持。

  • 更出色的国际字符集支持。

  • 更优的字体数据保护。

  • 更小的文件大小,让字体发布更加高效。

  • 更广泛的高级版式控件支持。

 备注

Windows SDK 包含一组可用于 Windows Presentation Foundation (WPF) 应用程序的示例 OpenType 字体。 这些字体提供本主题余下部分所述的大多数功能。

高级版式扩展

高级版式表格(OpenType 布局表格)扩展了具有 TrueType 或 CFF 边框的字体的功能。 OpenType 布局字体包含一些其他信息,可扩展字体功能以支持高质量国际版式。 大多数 OpenType 字体仅体现全部可用 OpenType 功能的一部分。 OpenType 字体提供以下功能。

  • 字符与字形之间的丰富映射,可支持连字、定位格式、备用项以及其他字体替换功能。

  • 支持二维定位和字形附加。

  • 字体中包含的显式脚本和语言信息,使文本处理应用程序可相应调整其行为。

在 OpenType 规范的“字体文件表格”部分中对 OpenType 布局表格进行了更详细的介绍。

此概述的其余部分介绍了一些直观有趣的 OpenType 功能的广度和灵活性(这些功能由 Typography 对象的属性公开)。 

2、变量

变量用于呈现不同的版式风格,例如上标和下标。

上标和下标

通过 Variants 属性可以设置 OpenType 字体的上标和下标值。

以下文本显示 Palatino Linotype 字体的上标。

opentype-superscripts.gif?view=netframeworkdesktop-4.8

以下标记示例演示如何使用 Typography 对象的属性定义 Palatino Linotype 字体的上标。

XAML复制

<Paragraph FontFamily="Palatino Linotype">2<Run Typography.Variants="Superscript">3</Run>14<Run Typography.Variants="Superscript">th</Run>
</Paragraph>

以下文本显示 Palatino Linotype 字体的下标。

opentype-subscripts.gif?view=netframeworkdesktop-4.8

以下标记示例演示如何使用 Typography 对象的属性定义 Palatino Linotype 字体的下标。

XAML复制

<Paragraph FontFamily="Palatino Linotype">H<Run Typography.Variants="Subscript">2</Run>OFootnote<Run Typography.Variants="Subscript">4</Run>
</Paragraph>

上标和下标的修饰用法

也可使用上标和下标来营造混合大小写文本的修饰效果。 以下文本显示 Palatino Linotype 字体的上标和下标文本。 注意,大写字母不受影响。

opentype-superscripts-subscripts.gif?view=netframeworkdesktop-4.8

以下标记示例演示如何使用 Typography 对象的属性定义字体的上标和下标。

XAML复制

<Paragraph FontFamily="Palatino Linotype" Typography.Variants="Superscript">Chapter One
</Paragraph>
<Paragraph FontFamily="Palatino Linotype" Typography.Variants="Subscript">Chapter One
</Paragraph>

3、大写字母

大写字母是一组以大写样式字形呈现文本的版式形式。 通常情况下,当以全大写呈现文本时,字母之间的间距可能看起来很小,字母的权重和比例看起来会很大。 OpenType 支持多种大写字母的样式格式,包括小体大写字母、小号大写字母、标题和大写字母间距。 通过这些样式格式可控制大写字母的外观。

以下文本显示 Pescadero 字体的标准大写字母,其后接样式为“SmallCaps”和“AllSmallCaps”的字母。 本例中,对所有三个单词均使用相同的字体大小。

opentype-capitals.gif?view=netframeworkdesktop-4.8

以下标记示例演示如何使用 Typography 对象的属性定义 Pescadero 字体的大写字母。 使用“SmallCaps”格式时会忽略任何前导大写字母。

XAML复制

<Paragraph FontFamily="Pescadero" FontSize="48"><Run>CAPITALS</Run><Run Typography.Capitals="SmallCaps">Capitals</Run><Run Typography.Capitals="AllSmallCaps">Capitals</Run>
</Paragraph>

标题大写字母

标题大写字母权重和比例更小,外观比普通大写字母更加雅致。 标题大写字母通常用于作为标题的大号字体中。 以下文本显示 Pescadero 字体的普通大写字母和标题大写字母。 请注意第二行文本的宽度更窄。

opentype-titling-capitals.gif?view=netframeworkdesktop-4.8

以下标记示例演示如何使用 Typography 对象的属性定义 Pescadero 字体的标题大写字母。

XAML复制

<Paragraph FontFamily="Pescadero"><Run Typography.Capitals="Titling">chapter one</Run>
</Paragraph>

大写字母间距

大写字母间距功能让你可以在使用全大写字母文本时提供更宽的间距。 大写字母通常设计为与小写字母混合使用。 大写字母和小写字母之间看起来比较美观的间距在使用全大写字母时可能会显得过紧。 以下文本显示 Pescadero 字体的普通间距和大写字母间距。

opentype-capital-spacing.gif?view=netframeworkdesktop-4.8

以下标记示例演示如何使用 Typography 对象的属性定义 Pescadero 字体的大写字母间距。

XAML复制

<Paragraph FontFamily="Pescadero"><Run Typography.CapitalSpacing="True">CHAPTER ONE</Run>
</Paragraph>

4、连字

连子是为使文本更具可读性或更加美观而由两个或更多字形形成的一个单一字形。 OpenType 字体支持四种类型的连字:

  • 标准连字。 旨在增强可读性。 标准连字包括“fi”、“fl”和“ff”。

  • 上下文连字。 旨在通过在组成连字的字符之间提供更好的联结行为来增强可读性。

  • 自由连字。 重在修饰性,并非专为可读性而设计。

  • 历史连字。 重在历史性,并非专为可读性而设计。

以下文本显示 Pericles 字体的标准连字字形。

opentype-standard-ligatures.gif?view=netframeworkdesktop-4.8

以下标记示例演示如何使用 Typography 对象的属性定义 Pericles 字体的标准连字字形。

XAML复制

<Paragraph FontFamily="Pericles" Typography.StandardLigatures="True"><Run Typography.StylisticAlternates="1">FI</Run><Run Typography.StylisticAlternates="1">FL</Run><Run Typography.StylisticAlternates="1">TH</Run><Run Typography.StylisticAlternates="1">TT</Run><Run Typography.StylisticAlternates="1">TV</Run><Run Typography.StylisticAlternates="1">TW</Run><Run Typography.StylisticAlternates="1">TY</Run><Run Typography.StylisticAlternates="1">VT</Run><Run Typography.StylisticAlternates="1">WT</Run><Run Typography.StylisticAlternates="1">YT</Run>
</Paragraph>

以下文本显示 Pericles 字体的自由连字字形。

opentype-discretionary-ligatures.gif?view=netframeworkdesktop-4.8

以下标记示例演示如何使用 Typography 对象的属性定义 Pericles 字体的自由连字字形。

XAML复制

<Paragraph FontFamily="Pericles" Typography.DiscretionaryLigatures="True"><Run Typography.StylisticAlternates="1">CO</Run><Run Typography.StylisticAlternates="1">LA</Run><Run Typography.StylisticAlternates="1">LE</Run><Run Typography.StylisticAlternates="1">LI</Run><Run Typography.StylisticAlternates="1">LL</Run><Run Typography.StylisticAlternates="1">LO</Run><Run Typography.StylisticAlternates="1">LU</Run>
</Paragraph>

默认情况下,Windows Presentation Foundation (WPF) 中的 OpenType 字体启用标准连字。 例如,如果使用 Palatino Linotype 字体,则标准连字“fi”、“ff”和“fl”显示为组合字符字形。 请注意,每个标准连字的字符对之间彼此相连。

opentype-standard-ligatures-palatino.gif?view=netframeworkdesktop-4.8

但是,可禁用标准连字功能,从而使“ff”等标准连字显示为两个单独的字形,而不显示为一个组合字符字形。

disabled-opentype-standard-ligatures.gif?view=netframeworkdesktop-4.8

以下标记示例演示如何使用 Typography 对象的属性禁用 Palatino Linotype 字体的标准连字字形。

XAML复制

<!-- Set standard ligatures to false in order to disable feature. -->
<Paragraph Typography.StandardLigatures="False" FontFamily="Palatino Linotype" FontSize="72">fi ff fl
</Paragraph>

5、花体

花体是使用精美修饰的装饰性字形,通常与书法相关。 以下文本显示 Pescadero 字体的标准和花体字形。

opentype-standard-swash-glyphs.gif?view=netframeworkdesktop-4.8

花体通常用作事件公告等简短文章中的修饰元素。 以下文本使用花体强调事件名称的大写字母。

opentype-swashes.gif?view=netframeworkdesktop-4.8

以下标记示例演示如何使用 Typography 对象的属性定义字体花体。

XAML复制

<Paragraph FontFamily="Pescadero" TextBlock.TextAlignment="Center">Wishing you a<LineBreak/><Run Typography.StandardSwashes="1" FontSize="36">Happy New Year!</Run>
</Paragraph>

连接形式花体

花体字形的某些组合可能导致文本外观欠佳,例如相邻字母的下行处出现重叠。 通过连接形式花体,可使用能生成更佳外观的替代花体字形。 以下文本显示同一单词应用连接形式花体前后的外观。

opentype-contextual-swashes.gif?view=netframeworkdesktop-4.8

以下标记示例演示如何使用 Typography 对象的属性定义 Pescadero 字体的连接形式花体。

XAML复制

<Paragraph FontFamily="Pescadero" Typography.StandardSwashes="1">Lyon <Run Typography.ContextualSwashes="1">L</Run>yon
</Paragraph>

6、备用项

备用项是可替代标准字形的字形。 OpenType 字体(例如以下示例中使用的 Pericles 字体)可包含用于塑造不同文本外观的备用字形。 以下文本显示 Pericles 字体的标准字形。

opentype-standard-glyphs.gif?view=netframeworkdesktop-4.8

Pericles OpenType 字体包含其他字形,可为标准自行集提供样式备用项。 以下文本显示样式备用字形。

opentype-stylistic-alternate-glyphs.gif?view=netframeworkdesktop-4.8

以下标记示例演示如何使用 Typography 对象的属性定义 Pericles 字体的样式备用字形。

XAML复制

<Paragraph FontFamily="Pericles"><Run Typography.StylisticAlternates="1">A</Run>NCIENTGR<Run Typography.StylisticAlternates="1">EE</Run>KMYTH<Run Typography.StylisticAlternates="1">O</Run>LOGY
</Paragraph>

以下文本显示 Pericles 字体的几种其他样式备用字形。

opentype-stylistic-alternate-glyphs-pericles.gif?view=netframeworkdesktop-4.8

以下标记示例演示如何定义其他样式备用字形。

XAML复制

<Paragraph FontFamily="Pericles"><Run Typography.StylisticAlternates="1">A</Run><Run Typography.StylisticAlternates="2">A</Run><Run Typography.StylisticAlternates="3">A</Run><Run Typography.StylisticAlternates="1">C</Run><Run Typography.StylisticAlternates="1">E</Run><Run Typography.StylisticAlternates="1">G</Run><Run Typography.StylisticAlternates="1">O</Run><Run Typography.StylisticAlternates="1">Q</Run><Run Typography.StylisticAlternates="1">R</Run><Run Typography.StylisticAlternates="2">R</Run><Run Typography.StylisticAlternates="1">S</Run><Run Typography.StylisticAlternates="1">Y</Run>
</Paragraph>

随机备用连接形式

随机备用连接形式为单个字符提供多种备用字形。 实现脚本类型字体时,此功能可通过使用一组随机选择的外观稍有差异的字形来模拟手写内容。 以下文本使用 Lindsey 字体的随机备用连接形式。 请注意字母“a”外观稍有变化

opentype-random-contextual-alternates.gif?view=netframeworkdesktop-4.8

以下标记示例演示如何使用 Typography 对象的属性定义 Lindsey 字体的随机备用连接形式。

XAML复制

<TextBlock FontFamily="Lindsey"><Run Typography.ContextualAlternates="True">a banana in a cabana</Run>
</TextBlock>

历史形式

历史形式指过去常见的版式约定。 以下文本使用 Palatino Linotype 字体的一种历史字形形式显示短语“Boston, Massachusetts”。

opentype-historical-forms.gif?view=netframeworkdesktop-4.8

以下标记示例演示如何使用 Typography 对象的属性定义 Palatino Linotype 字体的历史形式。

XAML复制

<Paragraph FontFamily="Palatino Linotype"><Run Typography.HistoricalForms="True">Boston, Massachusetts</Run>
</Paragraph>

7、数字样式

OpenType 字体支持多种可用于文本中数值的功能。

分数

OpenType 字体支持多种分数样式,包括横式分数和竖式分数。

以下文本显示 Palatino Linotype 字体的分数样式。

opentype-slashed-stacked-fractions.gif?view=netframeworkdesktop-4.8

以下标记示例演示如何使用 Typography 对象的属性定义 Palatino Linotype 字体的分数样式。

XAML复制

<Paragraph FontFamily="Palatino Linotype" Typography.Fraction="Slashed">1/8 1/4 3/8 1/2 5/8 3/4 7/8
</Paragraph>
<Paragraph FontFamily="Palatino Linotype" Typography.Fraction="Stacked">1/8 1/4 3/8 1/2 5/8 3/4 7/8
</Paragraph>

旧样式数字

OpenType 字体支持旧样式数字格式。 此格式对于显示不再是标准样式的数字非常有用。 以下文本以 Palatino Linotype 字体的标准和旧样式数字格式显示 18 世纪日期。

opentype-old-style-numerals.gif?view=netframeworkdesktop-4.8

以下文本显示 Palatino Linotype 字体的标准数字,后跟旧样式数字。

opentype-old-style-numeral-sets.gif?view=netframeworkdesktop-4.8

以下标记示例演示如何使用 Typography 对象的属性定义 Palatino Linotype 字体的旧样式数字。

XAML复制

<Paragraph FontFamily="Palatino Linotype"><Run Typography.NumeralStyle="Normal">1234567890</Run><Run Typography.NumeralStyle="OldStyle">1234567890</Run>
</Paragraph>

比例数字和表格式数字

OpenType 字体支持比例数字和表格式数字功能,可在使用数字时控制宽度对齐。 比例数字将每个数字视为具有不同的宽度—“1”窄于“5”。 表格式数字被视为宽度相等的数字,因此它们可垂直对齐,从而增强财务类型信息的可读性。

以下文本使用 Miramonte 字体显示第一列中的两个表格式数字。 请注意数字“5”和“1”之间的宽度差异。 第二列显示相同的两个数值,并通过使用表格式数字功能调整其宽度。

opentype-proportional-tabular-figures.gif?view=netframeworkdesktop-4.8

以下标记示例演示如何使用 Typography 对象的属性定义 Miramonte 字体的比例数字和表格式数字。

XAML复制

<TextBlock FontFamily="Miramonte"><Run Typography.NumeralAlignment="Proportional">114,131</Run>
</TextBlock>
<TextBlock FontFamily="Miramonte"><Run Typography.NumeralAlignment="Tabular">114,131</Run>
</TextBlock>

斜线零

OpenType 字体支持斜线零数字格式来强调字母“O”和数字“0”之间的差异。 斜线零数字通常用于财务和商务信息中的标识符。

以下文本显示使用 Miramonte 字体的订单标识符。 第一行使用标准数字。 第二行使用斜线零数字,以便更易于与大写字母“O”进行区分。

opentype-slashed-zero-numerals.gif?view=netframeworkdesktop-4.8

以下标记示例演示如何使用 Typography 对象的属性定义 Miramonte 字体的斜线零数字。

XAML复制

<Paragraph FontFamily="Miramonte"><Run>Order #0048-OTC-390</Run><LineBreak/><Run Typography.SlashedZero="True">Order #0048-OTC-390</Run>
</Paragraph>

8、版式类

Typography 对象公开 OpenType 字体支持的功能集。 通过在标记中设置 Typography 的属性,可轻松创作使用 OpenType 功能的文档。

以下文本显示 Pescadero 字体的标准大写字母,其后接样式为“SmallCaps”和“AllSmallCaps”的字母。 本例中,对所有三个单词均使用相同的字体大小。

opentype-capitals.gif?view=netframeworkdesktop-4.8

以下标记示例演示如何使用 Typography 对象的属性定义 Pescadero 字体的大写字母。 使用“SmallCaps”格式时会忽略任何前导大写字母。

XAML复制

<Paragraph FontFamily="Pescadero" FontSize="48"><Run>CAPITALS</Run><Run Typography.Capitals="SmallCaps">Capitals</Run><Run Typography.Capitals="AllSmallCaps">Capitals</Run>
</Paragraph>

以下代码示例完成与先前的标记事例相同的任务。

C#复制

MyParagraph.FontFamily = new FontFamily("Pescadero");
MyParagraph.FontSize = 48;Run run_1 = new Run("CAPITALS ");
MyParagraph.Inlines.Add(run_1);Run run_2 = new Run("Capitals ");
run_2.Typography.Capitals = FontCapitals.SmallCaps;
MyParagraph.Inlines.Add(run_2);Run run_3 = new Run("Capitals");
run_3.Typography.Capitals = FontCapitals.AllSmallCaps;
MyParagraph.Inlines.Add(run_3);MyParagraph.Inlines.Add(new LineBreak());

版式类属性

下表列出了 Typography 对象的属性、值和默认设置。

展开表

properties默认值
AnnotationAlternates数值 - 字节0
CapitalsAllPetiteCaps | AllSmallCaps | Normal | PetiteCaps | SmallCaps | Titling | UnicaseFontCapitals.Normal
CapitalSpacingBooleanfalse
CaseSensitiveFormsBooleanfalse
ContextualAlternatesBooleantrue
ContextualLigaturesBooleantrue
ContextualSwashes数值 - 字节0
DiscretionaryLigaturesBooleanfalse
EastAsianExpertFormsBooleanfalse
EastAsianLanguageHojoKanji | Jis04 | Jis78 | Jis83 | Jis90 | NlcKanji | Normal | Simplified | Traditional | TraditionalNamesFontEastAsianLanguage.Normal
EastAsianWidthsFull | Half | Normal | Proportional | Quarter | ThirdFontEastAsianWidths.Normal
FractionNormal | Slashed | StackedFontFraction.Normal
HistoricalFormsBooleanfalse
HistoricalLigaturesBooleanfalse
KerningBooleantrue
MathematicalGreekBooleanfalse
NumeralAlignmentNormal | Proportional | TabularFontNumeralAlignment.Normal
NumeralStyleBooleanFontNumeralStyle.Normal
SlashedZeroBooleanfalse
StandardLigaturesBooleantrue
StandardSwashes数值 - 字节0
StylisticAlternates数值 - 字节0
StylisticSet1Booleanfalse
StylisticSet2Booleanfalse
StylisticSet3Booleanfalse
StylisticSet4Booleanfalse
StylisticSet5Booleanfalse
StylisticSet6Booleanfalse
StylisticSet7Booleanfalse
StylisticSet8Booleanfalse
StylisticSet9Booleanfalse
StylisticSet10Booleanfalse
StylisticSet11Booleanfalse
StylisticSet12Booleanfalse
StylisticSet13Booleanfalse
StylisticSet14Booleanfalse
StylisticSet15Booleanfalse
StylisticSet16Booleanfalse
StylisticSet17Booleanfalse
StylisticSet18Booleanfalse
StylisticSet19Booleanfalse
StylisticSet20Booleanfalse
VariantsInferior | Normal | Ordinal | Ruby | Subscript | SuperscriptFontVariants.Normal

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/623494.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux的SSH远程管理和服务器之间的免密连接

目录 一、远程管理基础 1.ssh协议 2.ssh原理 3、使用ssh协议传输的命令 4.登录方法 二、免密连接 1.免密连接的原理 2.实战 一、远程管理基础 1.ssh协议 ssh协议是基于C/S机构的安全通道协议&#xff0c;通信数据进行加密处理&#xff0c;用于远程管理。 ssh的服务名…

MATLAB二维与三维绘图实验

本文MATLAB源码&#xff0c;下载后直接打开运行即可[点击跳转下载]-附实验报告https://download.csdn.net/download/Coin_Collecter/88740747 一、实验目的 掌握图形对象属性的基本操作。掌握利用图形对象进行绘图操作的方法。 二、实验内容 利用图形对象绘制曲线&#xff…

【图解数据结构】深入剖析时间复杂度与空间复杂度的奥秘

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;图解数据结构、算法模板 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 一. ⛳️算法的定义二. ⛳️算法的特性2.1 &#x1f514;输入输出2.2 &#x1f514;输入输出2.3 &…

MySQL面试题2

文章目录 面试题 (9-15) 面试题 (9-15) 09&#xff09;查询学过「张三」老师授课的同学的信息 SELECT s.*,c.cname,t.tname FROM t_mysql_teacher t,t_mysql_student s,t_mysql_course c,t_mysql_score sc WHERE t.tidc.tid and c.cidsc.cid and sc.sids.sid and tname ‘张…

网站建设网络设计营销类网站eyouCMS模板(PC+WAP)

模板介绍&#xff1a; 本模板自带eyoucms内核&#xff0c;无需再下载eyou系统&#xff0c;原创设计、手工书写DIVCSS&#xff0c;完美兼容IE7、Firefox、Chrome、360浏览器等&#xff1b;主流浏览器&#xff1b;结构容易优化&#xff1b;多终端均可正常预览。

【面试合集】说说微信小程序的登录流程?

面试官&#xff1a;说说微信小程序的登录流程&#xff1f; 一、背景 传统的web开发实现登陆功能&#xff0c;一般的做法是输入账号密码、或者输入手机号及短信验证码进行登录 服务端校验用户信息通过之后&#xff0c;下发一个代表登录态的 token 给客户端&#xff0c;以便进行…

线程安全2

文章目录 锁的可重入性死锁内存可见性引起的线程安全 锁的可重入性 直观来看这个代码不能运行 为啥没有出现阻塞&#xff1f; 当前由于是同一个线程&#xff0c;此时的锁对象&#xff0c;就知道了第二次加锁的线程&#xff0c;就是持有锁的线程&#xff0c;第二次操作&#xff…

前端开发必备:掌握正则表达式,轻松应对复杂的表单验证

前言 在前端开发中&#xff0c;经常需要处理 URL 地址、校验手机号合法性、提取域名等。正则表达式是一种常用的工具。通过使用正则表达式&#xff0c;我们可以对用户输入进行有效的验证&#xff0c;确保数据的合法性和完整性。本文将介绍一些常见的正则表达式&#xff0c;帮助…

使用JDK自带的jvisualvm工具查看堆dump文件【回顾】

JDK自带的jvisualvm的使用 打开方式&#xff1a; 直接命令行输入&#xff1a;jvisualvm ,然后回车​​​​​​​ ​​ 或者去jdk的bin目录下找到打开 安装visual GC插件 检测死锁 再点击“死锁 dump”就可以看到死锁的线程信息了&#xff1b;

Vulnhub靶机:driftingblues 4

一、介绍 运行环境&#xff1a;Virtualbox 攻击机&#xff1a;kali&#xff08;10.0.2.15&#xff09; 靶机&#xff1a;driftingblues4&#xff08;10.0.2.20&#xff09; 目标&#xff1a;获取靶机root权限和flag 靶机下载地址&#xff1a;https://www.vulnhub.com/entr…

【Python数据分析系列】实现txt文件与列表(list)相互读写转换(源码+案例)

这是Python数据分析系列原创文章&#xff0c;我的第199篇原创文章。 一、问题 平时在做数据分析或者程序开发的时候&#xff0c;需要将中间的一些结果或最后的处理结果保存下来&#xff0c;比如保存为txt格式的文本文件&#xff0c;这就涉及列表与txt之间的一种读取和写入操作…

spring cloud feign demo

1. 工程结构 2. 父工程pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.…

JVM实战(17)——模拟对象晋升

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 学习必须往深处挖&…

将PDF发票转换为excel、xml结构化数据的完美解决方案

随着电子发票的普及&#xff0c;越来越多的企业和个人开始使用PDF格式的电子发票。然而&#xff0c;有时我们需要将电子发票转换为XML格式以便于处理和分析。本文将介绍如何将收到的PDF发票下载为excel、xml文件。首先&#xff0c;我们需要明确一点&#xff0c;PDF是一种基于图…

C#编程-属性和反射

属性和反射 属性是将元数据信息和行为添加到应用程序代码中的简单技术。属性是允许您将声明信息添加到程序的元素。此声明信息在运行时用途广泛,可使用应用程序开发工具在设计时使用。 介绍属性 对象是由其属性值描述的。例如,汽车可以使用它的构造、型号或颜色来描述。类似…

ART-Adversarial Robustness Toolbox检测AI模型及对抗攻击的工具

一、工具简介 Adversarial Robustness Toolbox 是 IBM 研究团队开源的用于检测模型及对抗攻击的工具箱&#xff0c;为开发人员加强 AI模型被误导的防御性&#xff0c;让 AI 系统变得更加安全&#xff0c;ART支持所有流行的机器学习框架 &#xff08;TensorFlow&#xff0c;Ker…

SpringMVC RESTful案例

文章目录 1、准备工作2、功能清单3、具体功能&#xff1a;访问首页a>配置view-controllerb>创建页面 4、具体功能&#xff1a;查询所有员工数据a>控制器方法b>创建employee_list.html 5、具体功能&#xff1a;删除a>创建处理delete请求方式的表单b>删除超链接…

Web3社交治理:用户参与决策的新模式

Web3时代的到来不仅仅带来了区块链技术的创新&#xff0c;还为社交治理带来了全新的模式。传统社交平台上的决策权通常集中在平台的运营方&#xff0c;而Web3社交治理的兴起意味着用户能够更直接地参与到社交平台的决策过程中。本文将深入探讨Web3社交治理的背景、工作原理以及…

帆软笔记-决策表报对象使用(两表格联动)

效果描述如下&#xff1a; 数据库中有个聚合商表&#xff0c;和一个储能表&#xff0c;储能属于聚合商&#xff0c;桩表中有个字段是所属聚合商。 要求帆软有2个表格&#xff0c;点击某个聚合商&#xff0c;展示指定的储能数据。 操作&#xff1a; 帆软选中表格单元&#xf…