Home > Articles > Web Services > XML

This chapter is from the book

This chapter is from the book

Text in SVG

SVG treats a text element in much the same way that it treats graphical and shape elements. You position text with x and y coordinates and use fill and stroke options to color text the same way you would with a <circle> or <rect> element. However, SVG allows a surprising amount of control over how text appears (such as fonts, letter spacing, alignment), much like any good text layout program, but in addition offers the ability to internationalize your text message. Few other applications or computer languages permit this flexibility. This is because text in SVG remains character data even after it is rendered, so it is searchable and can be edited, even if it is a graphical element.

The <text> Element

In SVG, text is rendered with the <text> element. The simplest example of a <text> element is one that uses just x and y attributes to place it. Text is rendered by default with a black fill and no outline. Unlike other objects, this is usually fine for words. Example 3–10 shows this simple use of the <text> element.

Example 3–10

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">

<svg width="300" height="300">

<text x="85" y="124">Text in SVG</text>

</svg>

This code results in the image shown in Figure 3–13.

The letters were placed in position with the <text> element, using its x and y attributes. Text is positioned (unlike the <rect> element) with its lower left corner at the coordinates specified in the x and y attributes.

The <text> element in Example 3–10 does not have any style attributes, so SVG gave it the default black fill and no outline.

Figure 3.13FIGURE 3–13 The <text> element (TEXT01.SVG).


Characters and Glyphs

To understand text in SVG, it's useful to take a look at the difference between characters and glyphs. A character is a letter, number, or punctuation mark, such as the letter A. A glyph, on the other hand, is the way that particular character is rendered; for instance, A, A, A, and A are all versions of the capital letter A character. But they are displayed in different fonts, which means that they are all different glyphs. A character is the basic idea of a letter or number, and a glyph is the way it is rendered on screen or paper.

In SVG text, the <text> element is held as character data, which makes it accessible to searches and internationalization. You can control the way SVG renders text by choosing attributes, transforming it, specifying fills and strokes, and specifying fonts, font-size, and spacing.

In this book, we'll use the style attribute to specify many presentational text characteristics, such as font-family, font-style, and so on. Note that you don't need to put these in the style attribute; you can use them on their own. In other words:

<text x="50" y="100" font-family="arial" font-size="18">

and

<text x="50" y="100" style="font-family:arial; font-size:18">

are equivalent statements. This means you can write them with either the font name in quotes or the entire font family name in quotes, as in the above example.

SVG does not yet recognize (as of this writing) newlines and tabs, so the <text> element renders text in one line. If you want your text to be on more than one line, you can use either multiple <text> elements or the <tspan> element (which we describe later in this chapter) to break the text up. You would have to give each new <text> line new x and y coordinates, depending on how you wanted the lines to render. Example 3–11 shows multiple <text> elements displaying lines of poetry.

Example 3–11

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">

<svg width="300" height="300">

<text x="55" y="55">When I grow old with wandering</text>
<text x="55" y="75">Through hollow lands and hilly lands</text>
<text x="55" y="95">I will find out where she has gone</text>
<text x="55" y="115">and kiss her lips and take her hand</text>
<text x="55" y="135">and walk among long dappled grass</text>
<text x="55" y="155">and pick til time and times are done</text>
<text x="55" y="175">the silver apples of the moon,</text>
<text x="55" y="195">the golden apples of the sun</text>

</svg>

We changed the y attribute for each line of text to space the W.B. Yeats verse. Figure 3–14 shows how the SVG file will look on screen.

Figure 3.7FIGURE 3–14 Multiple <text> elements to create a multiline text poem (POETRY.SVG).


Table 3–7 shows the <text> element and its attributes.

TABLE 3–7 <text> Element and Attributes

Element

Attributes

Description

<text>

x

x coordinate for lower left corner of text string

 

y

y coordinate for lower left corner of text string

 

dx

Shifts along the x axis for characters in the <text> element that includes this attribute

 

dy

Shifts along the y axis for characters in the <text> element that includes this attribute. (Note: can be used for super- or subscript characters)

 

rotate

Rotation about the current text position. Can be used instead of the transform=rotate() attribute to rotate text

 

textLength

Author's computation of the length of the text string. Used to calculate adjustments when exact positioning is necessary

 

lengthAdjust

This attribute has two options—"spacing" and "spacingAndGlyphs" The former (spacing) will adjust the spacing between glyphs but will not stretch or squeeze the glyphs themselves. spacingAndGlyphs (as the name states) will adjust both spacing between glyphs and glyph size.


The dx and dy attributes shown in Table 3–7 are useful for shifting characters slightly, as with super- or subscript characters. Example 3–12 shows a <text> element with both dx and dy attributes applied:

Example 3–12

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"

"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">

<svg width="300" height="300">

<text x="55" y="105">Water is H</text>
<text dx="110" dy="112">2</text>
<text dx="120" dy="105">0</text>

</svg>

We used the dx and dy attributes to render the subscript 2 in H2O properly. The dx attribute places a character horizontally, so we needed to put the 2 character just to the right of the H character, and the O character just to the right of the 2 character. The dy attribute places a character vertically, so the 2 character is placed at 112 instead of 105, and the O character is back at 105 to line up with the rest of the text. We needed to place the O character back at the y coordinate of 105, because the x and y positions of a <text> element will stay at the dx and dy positions unless specified otherwise.

You can also create super- and subscript characters by using the baseline-shift property, as we will see a bit later in this chapter, when we discuss text alignment.

The other text attributes (rotate, textLength, and lengthAdjust) will be investigated during the text layout part in this chapter.

The <tspan> Element

The <tspan> element adjusts text properties within a <text> element. An example of this would be if you wanted to render the following sentence in SVG: "This is an example of tspan." The sentence uses bold, italics, and a different font all in one sentence. The <tspan> elements can be embedded within a <text> element to handle all of the text-rendering needs within that sentence. Example 3–13 illustrates this.

Example 3–13

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">

<svg width="300" height="300">

  <text x="55" y="105" style="font-family:times">This 
  <tspan style="font-style:italic">is </tspan>
  <tspan style="font-style:normal">an </tspan>
  <tspan style="font-weight:bold">example </tspan>
  <tspan style="font-style:italic;font-weight:bold">
  of </tspan>
  <tspan style="font-family:arial; font-style:normal; 
  font-weight:normal">tspan.</tspan>

</text>

</svg>

The code shows multiple <tspan> elements used with different style properties to create the look of a sentence with bold and italic characters, as well as characters with a different font. Figure 3–15 displays the result of the code from Example 3–13 in a browser.

Figure 3.15FIGURE 3–15 Multiple <tspan> elements create text with different properties within one <text> element.

The <tspan> element can also be used for multiline text. Just remember that <tspan> is always embedded within a <text> element!

All of the attributes listed in Table 3–7 that apply to the <text> element (x,y, dx,dy, rotate, textLength, and lengthAdjust) also apply to the <tspan> element, in much the same way as they are used in the <text> element.

The <tref> Element

The <tref> element references text that has been created in a <defs> element, either in the same or another SVG document. The <tref> element uses the "xlink:href="(uri)" attribute to reference text when it has been created elsewhere and given an id attribute. Example 3–14 shows a <text> element placed in a <defs> element and referenced later in the SVG document via the <tref> element.

Example 3–14

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">

<svg width="300" height="300">

<!-- define text-->
<defs>

<text id="referencedText" style="font-family:times; 
font-weight:bold">This is referenced text.</text>

</defs>

<!-- use tref to reference text defined and created elsewhere -->

<text x="50" y="100">
<tref xlink:href="#referencedText"/> 
</text>

</svg>

Like the <use> element, <tref> can reference text within the SVG file. The <text> element referenced has to contain an id attribute in order to be visible. <tref> cannot reference whole documents but can reference <text> elements defined within a different document.

Fonts and Layout

SVG has numerous attributes and values related to fonts and layout, so you are by no means relegated to the vanilla text style we've been using so far! You'll see that SVG can do just about anything that a good word processing or text layout application can do.

Fonts and Font Properties

Table 3–8 lists font properties available in SVG.

TABLE 3–8 Font Properties

Property

Value

Description

font-family

A font name, such as arial or times; or a generic value, such as serif or sans

Specifies a font to be used for text in a <text> or <tspan> element. SVG has many fonts available, and it is also possible to import fonts.

font-style

normal | italic |oblique

Specifies the rendering of the font face as italic, normal, or oblique. Defaults to normal.

font-variant

normal | small-caps

Specifies whether lowercase text will be rendered in normal, i.e., lowercase text, or in small-caps text. Defaults to normal.

font-weight

normal | bold | bolder | lighter

Specifies boldness or lightness of text. Defaults to normal.

font-stretch

normal | wider | narrower

Specifies condensing or expanding of glyphs. Defaults to normal.

font-size

<absolute size> | <relative size> | <length> | <percentage>

Specifies size of font. The words in brackets indicate number values. If no unit identifier is provided for number values, SVG will assume the current user unit, (pixels, unless otherwise specified in the SVG document).

font-size-adjust

<number> | none

Specifies an aspect value that preserves the sizing of a font if it is necessary to substitute another font for the original font.


These font properties are useful for fine-tuning text. Use these properties in the style attribute, both to streamline code and to keep the presentational aspects of text together.

SVG contains an attribute value called text-decoration, used for underlining or otherwise "decorating" text. The values used with text-decoration are: none | underline | overline | line-through | blink. Only the last one needs some explanation. SVG Viewers are not required to support the blink value, and as of this writing, most of them don't, so we'll leave it alone here.

Text Spacing

There are a few ways in SVG to control the space in text. You can control the space between letters and the space between words, or you can kern text. Kerning is a typesetting term that means controlling the space between glyphs in the text by means of certain proportion rules that depend on the glyphs (fonts) used. There are generally kerning tables included within each font that tell the SVG viewer how to deal with kerning.

SVG has properties that deal with these three ways of controlling spaces. They are called (appropriately enough) kerning, letter-spacing, and word-spacing. The code listed in Example 3–15 shows all three properties.

Example 3–15

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG- 20010904/DTD/svg10.dtd">

<svg width="500" height="400">

<text x="30" y="50" style="font-family:arial; font-size:19; 
kerning:auto">This is Kerning set to auto</text>

<text x="30" y="70" style="font-family:arial; font-size:19; 
kerning:1">This is Kerning set to 1</text>

<text x="30" y="90" style="font-family:arial; font-size:19; 
kerning:3">This is Kerning set to 3</text>


<text x="30" y="130" style="font-family:arial; font-size:19; 
letter-spacing:1">This is letter-spacing set to 1</text>

<text x="30" y="150" style="font-family:arial; font-size:19; 
letter-spacing:2">This is letter-spacing set to 2</text>

<text x="30" y="170" style="font-family:arial; font-size:19; 
letter-spacing:3">This is letter-spacing set to 3</text>

<text x="30" y="210" style="font-family:arial; font-size:19; 
word-spacing:1">This is word-spacing set to 1</text>

<text x="30" y="230" style="font-family:arial; font-size:19; 
word-spacing:2">This is word-spacing set to 2</text>

<text x="30" y="250" style="font-family:arial; font-size:19; 
word-spacing:3">This is word-spacing set to 3</text>


</svg>

Figure 3–16 shows the results of the code in Example 3–15.

Figure 3.16FIGURE 3–16 Kerning, letter-spacing, and word-spacing properties.


Earlier, we saw one way of rendering super- and subscripts (by using the dx and dy attributes) but there is an easier way, using the baseline-shift property. This property has values of: baseline, sub, super, <percentage number>, and <length number>. To use percentage or length, pick a positive number for a superscript and a negative number for a subscript. The baseline option sets the text back to the baseline and removes super- or subscripting. Example 3–16 shows the sub, super, <percentage number>, and <length number> options of the baseline-shift property.

Example 3–16

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">

<svg width="500" height="400">

<text x="30" y="50" style="font-family:arial; 
font-size:19">Superscript
<tspan style="baseline-shift:super">super</tspan>
<tspan x="30" y="90">Subscript</tspan>
<tspan style="baseline-shift:sub">sub</tspan>
<tspan x="30" y="130">Percentage</tspan>
<tspan style="baseline-shift:20%">20%</tspan>
<tspan x="30" y="170">Length</tspan>
<tspan style="baseline-shift:-10">-10</tspan>
</text>


</svg>

Figure 3–17 shows the baseline shift properties.

Figure 3.17FIGURE 3–17 The baseline-shift properties. From top to bottom: super, sub, <percentage number>, and <length number> (subSuper.svg).


So far, we've seen how text itself is rendered and spaced. Now we'll look at some text layout features supported in SVG.

SVG has no inherent support for line breaks or text wrapping, so multiline text layout is possible only by using multiple <text> elements or <tspan> elements embedded within <text> elements. However, SVG has sophisticated support for other aspects of text layout, including text orientation (i.e., horizontal or vertical text) and bidirectionality, (i.e., text flowing from left to right, as in English, or right to left, as in Arabic or Hebrew). In SVG, you can also render text along a path, which means the text does not flow along a strictly vertical or horizontal line.

Tables 3–9 and 3–10 show text orientation and directionality properties.

TABLE 3–9 Text Orientation

Orientation Property

Value

Description

glyph-orientation-vertical

auto | <angle of rotation>

Rotates glyphs in an element according to degrees provided. The angle can be set only to 0, 90, 180, or 270 degrees. Auto is default and is equal to zero, depending on font. (Ideographic characters are treated differently than Latin characters.)

glyph-orientation- horizontal

<angle of rotation>

The angle can be set only to 0, 90, 180, or 270 degrees. Orients glyphs horizontally.


TABLE 3–10 Directionality

Directionality Property

Value

Description

direction

ltr | rtl

Specifies either left to right (ltr) or right to left (rtl) direction of glyphs. English and French are examples of text that flows left to right; Arabic and Hebrew are examples of text that flows right to left.

unicode-bidi

normal | embed | bidi-override

Specifies whether text will be bidirectional. If you want to set the direction of text to rtl, you must use the unicode-bidi property set to bidi-override.


The direction and unicode-bidi properties work together to set text to flow from right to left. You need both because when the unicode-bidi property is at its default of normal, text may not always render according to the direction you set. This is because of the Unicode bidirectional algorithm, a rather complex set of rules that determine the proper directionality of text, largely based on character properties. Unfortunately, this algorithm may not produce the effect you want, so using the unicode-bidi property set to bidi-override will allow you to specify the rtl/ltr direction without interference from the Unicode standard. We'll look at Unicode in Chapter 12.

The last point is SVG's ability to lay out text along a specified path. This ability increases the artistic potential of text and makes text layout quite sophisticated!

Figure 3–18 shows an example of text along a curved path.

Figure xxxFIGURE 3–18 Text along a curved path.

Example 3–17 shows the code for the image in Figure 3–18. We define a path in a <defs> element and give the path an id. Starting with a <text> element, we reference within the path we just created with the <textPath> element. Like <use> and <tref>, the <textPath> element uses the xlink:href attribute to reference a piece of code defined in a <defs> element and named with an id attribute. In the case of <textPath>, we reference a curved path defined in a <defs> element and named textCurve.

Example 3–17

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">

<svg width="500" height="400">

<defs>
<path id="textCurve" d="M10.5 203 C15.948 197.239 87.7676 153.791 
102.5 158 C119.025 162.722 182.543 202 196.5
202 C202.451 202 242.889 237.817 297.5 156"/>
</defs>

<text style="font-size:18pt">

<textPath xlink:href="#textCurve">Merrily we curve along!</textPath>

</text>

</svg>

Please note that the path defined in Example 3–17 is a series of curves set by specifying coordinates and control points in the d= attribute. In Chapter 1, we saw that the d attribute is the "path data" attribute and, like polygons and polylines, contains a series of coordinates to specify where lines will be drawn. Unlike polylines and polygons, however, path data can contain curves. We'll take a closer look at paths in Chapter 4.

Internationalization

SVG can render text in fonts other than English and in directions that are compatible with many different languages. SVG uses the Unicode standard for text, which provides a character set that is virtually universal. That means that most written languages can be used to render SVG text, provided that you can find the font.

Another aspect of internationalization is SVG's ability to render documents in different languages, dependent on the system that the client machine is using. In other words, you can create a document that will render in English if the client has a system set to English, French if the client's browser is set to French, and so on, making SVG truly useful for creating sites that are to be seen internationally. This exciting feature is accessed by using SVG's systemLanguage attribute and an element called <switch>. Let's take a look at a multilingual SVG file. Example 3–18 shows text in English, French, and Spanish.

Example 3–18

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"

"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">

<svg width="500" height="400">

<text x="100" y="200" style="fill:red; font-family:arial; 
font-size:18; font-weight:bold" systemLanguage="en">I like SVG!
</text>

<switch>
<text x="100" y="200" style="fill:red; font-family:arial; 
font-size:18; font-weight:bold" systemLanguage="fr">J'aime SVG!
</text>

<text x="100" y="200" style="fill:red; font-family:arial; 
font-size:18; font-weight:bold" systemLanguage="sp">Me gusta SVG!
</text>
</switch>

</svg>

If you view the code in Example 3–18 on a system set to English as the default language, you'll see the text that says "I like SVG!" However, if you view the code in a system with the default language set to French or Spanish, you'll see either "J'aime SVG!" or "Me gusta SVG!" Fortunately, you won't see all three <text> elements at the same time because of the <switch> element. How does it work?

We created three <text> elements and set each one with a different systemLanguage attribute. The first one is set to "en" for English, the second to "fr" for French, and the third to "sp" for Spanish.

Next, we embedded our French and Spanish text into a <switch> element. The <switch> element tells SVG that only one of the elements nested within it will be rendered.

The SVG viewer reads the first systemLanguage attribute, and if the client system is set to English as its default, the English text is rendered, and the other options are ignored. If the client's system is not set to English, SVG reads through the <switch> elements. If the system is set to French, the French text is rendered, and the rest is ignored. If the system is not set to either English or French, SVG looks to see whether it is set to Spanish. If it is, the Spanish text is rendered. If the client's system is set to none of the languages we've specified, SVG will render nothing. We could add a default element within the <switch> element to display if the client's system language is not found in the code. This line of code would be placed just before the closing </switch> element tag and would read as follows:

<text x="100" y="200" style="fill:red; font-family:arial; 
font-size:18; font-weight:bold">Language not found.</text>

To be really correct, add a graphic element instead of text, like a large exclamation point or question mark. This may help a reader who doesn't speak English more than English text could!

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020