Looking Forward: InDesign as
an XML “Skin”
If you have a number of XML documents, all based on the same tags, you can make
them look completely different just by using a different style mapping and page layout.
For example, say that in template A.indt, you have three columns, justified text, with
Caslon Old Style as the base font. In template B.indt, you have a single-width column
of left-aligned text with a narrow sidebar and Helvetica as the base font. In each template,
you have mapped the XML tags to paragraph and character styles of the same name
(but different definitions) and applied tags to text flows. By importing the XML of the
same tag structure into the different InDesign templates, you will get completely
different-looking documents.
The power of this technique is only beginning to be appreciated. It is held back by the
fact that there is so little standardization of XML that people use in InDesign. I expect
that the next development will be the introduction of XML standard tag sets (DTDs)
for publications that are rich enough to describe information usefully, but not so deeply
that they are difficult to use. Using standardized XML content models will provide the
basis for increased automation with XSLT on import and export of XML.
If you want to explore this concept now, it is easy to try out:
1. Create an InDesign template (.indt) with styles, column layout, and so on that you
2. Use an XML file as the basis to create placeholder content with the tags you want
to use. Map the tags to styles in the template.
3. Save a copy of the .indt file with a new name.
C# convert pdf to text - Convert PDF to txt files in, ASP.NET MVC, WinForms, WPF application
C# PDF to Text (TXT) Converting Library to Convert PDF to Text
convert pdf picture to text; convert pdf to editable text online
C# convert pdf to text - VB.NET PDF Convert to Text SDK: Convert PDF to txt files in, ASP.NET MVC, WinForms, WPF application
VB.NET Guide and Sample Codes to Convert PDF to Text in .NET Project
change pdf to text file; convert pdf photo to text
4. Open it and redefine the styles, change the column layout, and so on to make a
different-looking design.
5. Import the XML into an InDesign file based on the first template. It should format
itself with your styles.
6. Import the same XML, or other XML based on the same tags, into an InDesign file
based on your second template. It should format itself with your other styles.
If you maintain the same set of XML tags and InDesign styles and the mappings between
them, you can create as many different document looks as you care to design. As a
designer, you can look at this process as similar to creating HTML skins for websites.
You can commoditize the template design if you can get people to use the same XML
tags for different content (or convert XHTML to XML using XSLT, as described in
“Upcasting from HTML to XML for InDesign Import” (page 94)).
48 | Chapter 5: Looking Forward: InDesign as an XML “Skin”
C# PDF Text Extract Library: extract text content from PDF file in
C# PDF - Extract Text from PDF in C#.NET. Feel Free Best C#.NET PDF text extraction library and component for free download. XDoc.PDF
remove text from pdf; change pdf to text for editing
C# PDF Convert to Jpeg SDK: Convert PDF to JPEG images in
›› C# PDF: Convert PDF to Jpeg. C# PDF - Convert PDF to JPEG in C#.NET. C#.NET PDF to JPEG Converting & Conversion Control. Convert PDF to JPEG Using C#.NET.
convert scanned pdf to text; best pdf to text
Exporting XML
Marking Up (Tagging) Existing Content for XML Export
The “tagging” process is generally quite straightforward. Select objects or text, and then
click a tag name in the Tags window’s list of tags (assuming that you have loaded tags).
See the InDesign Help section “Tagging content to export to XML” for more information.
For tables and images, I have provided more details in this section.
The Special Case of InDesign Tables (Namespaced XML)
A surprising number of layout people have never tried the table features of InDesign,
preferring to group text frames to make tables. But because InDesign CS offers powerful
table design and production, we will make good use of them for our XML processes.
We’ll work through some table exercises. First, to understand how InDesign represents
a table as XML, we will start by saving a tagged table as XML:
1. Select Table→Insert Table. The Insert Table dialog opens. Create this table as two
columns, with one heading row and three normal rows.
2. Click in the top left edge of the first row to select the row, then select Table→Merge
Cells to combine the two cells into a single row.
3. Repeat the Merge Cells operation for the second and fourth rows of the table, leaving
the third row as two separate cells.
4. Now use Table→Select→Table to make sure the entire table is selected, then use the
Tags palette to tag the entire table as <CourseDescriptions> (the root element of
the sample XML file).
C# PDF Convert to HTML SDK: Convert PDF to html files in
also makes PDF document visible and searchable on the Internet by converting PDF document file into How to Use C#.NET Demo Code to Convert PDF Document to
convert pdf to word editable text; c# pdf to txt
C# PDF Convert to Tiff SDK: Convert PDF to tiff images in
Home ›› XDoc.PDF ›› C# PDF: Convert PDF to Tiff. C#.NET PDF SDK - Convert PDF to TIFF in C#.NET. Online C# Tutorial for How
best pdf to text converter; convert pdf to text open source
5. Select the top row and type COURSE DESCRIPTIONS as the heading for the entire
table. Create a new paragraph style named TableHead1, making the text bold and
large, and apply it to the top row of the table. Do not tag the top row as an XML
6. In the second row, type CourseDescription_Major. Apply the matching paragraph
style, then select the row and tag it with the <CourseDescription_Major> XML tag
7. In the first cell of the third row, type “CourseDescription_Name”. Apply the match‐
ing paragraph style, then select the cell (not the whole row), and tag it with the
<CourseDescription_Name> XML tag name.
8. In the second cell of the third row, type “CourseDescription_Text”. Apply the
matching paragraph style, then select the cell (not the whole row), and tag it with
the <CourseDescription_Text> XML tag name.
9. In the fourth row of the table, type “CourseDescription_Footnote”. Apply the
matching paragraph style, then select the row and tag it with the <CourseDescrip
tion_Footnote> XML tag name.
10. Below the table, type “Course offering subject to change. Check the website for
current offerings.” Create and apply a new paragraph style named Note that is a
variation of the CourseDescription_Footnote paragraph style (smaller and in a dif‐
ferent font so that it looks distinctive).
11. Save your file containing your styled and tagged table.
12. Select File→Save As Copy to freeze a copy of this file as a snapshot to which you can
Examining the Table
Open the Structure pane if it is not already open. If you watch the Structure pane while
you move your cursor from place to place in the table, you will see a highlight on the
element that has been used to tag each row or cell.
Notice that there is a new element in the Structure pane named Cell that contains the
text for your table heading that you styled as TableHead1. The Tags palette (Figure 6-1)
will now include new elements named <Cell> and <Table>.
50 | Chapter 6: Exporting XML
C# PDF Convert to Word SDK: Convert PDF to Word library in
text, image, table, hyperlink and bookmark to Word without losing format. Powerful components for batch converting PDF documents in C#.NET program. Convert PDF
convert pdf to ascii text; c# extract text from pdf
C# PDF Convert to SVG SDK: Convert PDF to SVG files in, ASP
situations, it is quite necessary to convert PDF document into images are defined in XML text lines, they Therefore, in C#.NET web document viewing applications
convert pdf to text; convert pdf to txt batch
Figure 6-1. The Structure pane and Tags palette (left) and the table (right), showing that
InDesign adds a new tag named Cell when untagged content is included in a tagged
In CS5 and later versions
When you use Edit→Edit in Story Editor, you will be able to see how each individual
table cell is tagged with XML and what it contains.
In CS3 and CS4
When you use Edit→Edit in Story Editor to look at your file, instead of seeing the
angle symbols with XML element names around the text, you will only see the
element names in the left panel (the Structure pane). InDesign CS3 and CS4 do not
represent the tagged table content in the Story Editor view.
InDesign treats tables differently from all other XML. Tables are a specific type of object
within the InDesign application that are different from text objects or media (image)
objects. So InDesign has arbitrarily added new <Table> and <Cell> elements to your
set of XML tags to accord with its internal representation of the table object.
Even more surprises await you when you export this test table as XML.
We’ll perform two trials. For the first trial, select the entire text frame containing the
table. While it is selected, select File→Export, then choose XML as the file type and name
the file placeholderTable01.xml. Check the box to see the resulting XML in Internet
Explorer. Leave the encoding as UTF-8 (the default). Click Export.
For the second trial, in the Structure pane, click in the <CourseDescriptions> element,
then right-click to get a context menu. Select Export from Selected Item, and check the
box to see the resulting XML in Internet Explorer. Type a different name for this file,
such as placeholderTable02.xml. Leave the UTF-8 encoding, then click Export.
The Special Case of InDesign Tables (Namespaced XML) | 51
C# PDF insert text Library: insert text into PDF content in
|. Home ›› XDoc.PDF ›› C# PDF: Insert Text to PDF. C#.NET PDF SDK - Insert Text to PDF Document in C#.NET. C#.NET Project DLLs: Insert Text Content to PDF.
convert pdf file to text online; batch pdf to text
C# PDF Text Search Library: search text inside PDF file in
|. Home ›› XDoc.PDF ›› C# PDF: Search PDF Text. C#.NET PDF SDK - Search and Find PDF Text in C#.NET. C#.NET PDF DLLs for Finding Text in PDF Document.
convert pdf to txt file online; converting pdf to text
When you view the second file you made (placeholderTable02.xml) in Internet Explorer,
you can see that it contains the XML elements within the <CourseDescriptions> ele‐
ment, including the <Cell> element that InDesign added to tag the first row.
In addition, you see a lot of XML markup that you did not explicitly apply. The top
line now declares an XML namespace called aid: with this xmlns attribute
(xmlns:aid="") and adds to it some at‐
tributes (aid:tableaid:trows, and aid:tcols) of the <CourseDescriptions> ele‐
ment you used to tag the table. (For CS4 and CS5, the namespace xmlns:aid5="http://" is added to support table styles).
The root <table> element has a number of aid: attributes: aid:table="table",
aid:trows="4", and aid:tcols="2".
The header cells have markup for another set of aid: namespace attributes: aid:thead
er=""aid:crows="1", and aid:ccols="2".
And the other cells also contain aid: namespace attributes, such as aid:table="cell",
aid:crows="1"aid:ccols="2", and aid:ccolwidth="206.5010000000001" (some
long decimal value).
A complete example looks like this:
<CourseDescriptions xmlns:aid=""
aid:table="table" aid:trows="4" aid:tcols="2">
<Cell aid:table="cell" aid:theader="" aid:crows="1" aid:ccols="2">
<CourseDescription_Major aid:table="cell" aid:crows="1"
<CourseDescription_Name aid:table="cell" aid:crows="1" aid:ccols="1"
<CourseDescription_Text aid:table="cell" aid:crows="1" aid:ccols="1"
<CourseDescription_Footnote aid:table="cell" aid:crows="1"
The aid: namespace is used for many functions of InDesign under the hood. For now,
it is important only that you see that the markup appears in the XML export even though
you did not explicitly add it in InDesign.
Open the first table XML file you exported. You will see that this exported XML file
contains the automatically generated Root and Story elements and, near the bottom, the
untagged text you styled as a Note paragraph style:
- <Story>
- <CourseDescriptions xmlns:aid=""
aid:table="table" aid:trows="4" aid:tcols="2">
52 | Chapter 6: Exporting XML
<Cell aid:table="cell" aid:theader="" aid:crows="1" aid:ccols="2">
<CourseDescription_Major aid:table="cell" aid:theader="" aid:crows="1"
<CourseDescription_Name aid:table="cell" aid:crows="1" aid:ccols="1"
<CourseDescription_Text aid:table="cell" aid:crows="1" aid:ccols="1"
<CourseDescription_Footnote aid:table="cell" aid:crows="1"
Course offerings subject to change. Please check the website for current course 
Notice that although the aid: namespace was added to <CourseDescriptions> and its
child elements, it does not appear on the <Root> or <Story> elements or the untagged
line of text.
From these two examples of exported XML, we can reverse engineer what will make
InDesign “understand” and format imported XML as a table. The aid: namespace in‐
forms the program that we are using its underlying layout representation. To create a
table upon import, we need to add the aid: namespace attributes to each XML element.
Interpreting the aid: attributes is fairly straightforward. The element that will become
the table (generally some sort of wrapper element in the XML) minimally needs
aid:table="table" and an aid:tcols attribute set to the value of the number of col‐
umns in the overall table layout, such as aid:tcols="4".
There is no <row> in InDesign tables. The value of aid:trows is optional
for the element with the aid:table="table" attribute. If set, it may
truncate imported XML at the specified number of rows. If left off, the
rest of the imported content will determine the total number of rows in
the table.
The values of the attributes aid:ccols and aid:crows govern the column and row spans,
respectively, of an element with an attribute aid:table="cell". So, if on the table ele‐
ment the value is set with aid:tcols="2" and the cell-level element has the
aid:ccols="2", then the cell-level element will span two columns, the width of the table.
If aid:crows value is greater than 1, the cell will span the specified number of rows in
the table.
The Special Case of InDesign Tables (Namespaced XML) | 53
Table 6-1 is a good reference to help you keep this behavior sorted out.
Table 6-1. Table attributes
Namespaced attribute name
Defines any table-related element.
Defines the table element itself.
Defines N number of columns in the table.
Defines N number of rows in the table. You do not have to supply a value for this attribute,
and you should omit it when importing XML to avoid having the XML truncated when it
reaches the Nth value of aid:trows.
Defines a cell within a table.
Defines N number of columns that the cell will span.
Defines N number of rows that the cell will span.
Makes the cell a header, which enables it to be reused automatically at the top of every
text frame for tables that flow from one text frame to another. This is always an attribute
with an empty value "" because InDesign assumes that if it appears, it should be applied,
so you don’t have to type a “true” or false” for aid:theader.
Makes the cell a footer, which enables it to be repeated at the end of every text frame for
tables that flow from one text frame to another. This is always an attribute with an empty
value "" because InDesign assumes that if it appears, it should be applied, so you don’t
have to type a “true” or false” for aid:tfooter.
aid:colwidth="NNN.nnnnn" Width of column (in points not pixels; approximately 72 points = 1 inch).
Starting with CS4, the ability to add a named table style to the table object. You need to
have created a placeholder table with the named style in your InDesign template for the
style to be applied automatically upon importing XML into InDesign.
You can find more information on aid: namespaces for tables in Adobe InDesign CS3
and XML: A Technical Reference, or search online for aid: or aid5: namespace)
Tables are tricky to work with, and if the namespace is confusing, the easiest way to
create them is with the placeholder technique.
Tagging Images as XML in InDesign
Images are another special case in InDesign. Because a linked image is actually a separate
file, InDesign needs a pointer to the linked image in a graphics frame in the document.
So, you create a graphics frame, place a linked image into the frame (see the InDesign
Help if you don’t know how to do this), and tag it as an <Image> element. Then, you
will need an attribute of the <Image> element named “href” and the path to the file
folder and image file as its value, such as <Image href="path/to/folder/myfine
image.psd">. Adobe has kindly provided some assistance; according to the InDesign
54 | Chapter 6: Exporting XML
Help, “When you tag a graphics frame [with the Image tag], a reference to the graphic’s
location (on disk) is placed in the exported XML file.” (If you use a different element
name than <Image> to tag an image, the element is required to have the href attribute
with the file path to the image file, the same as an <Image> element.)
Image Options in the Export XML Dialog
When you export XML that includes the tagged, linked images, InDesign provides a tab
in the Export XML dialog with some choices. The Image Options are geared mostly to
creating web-friendly image output. But you can simply copy the original images to a
folder by checking the first checkbox, Original Images, below “Copy to Images Sub-
For the other two checkboxes, InDesign provides the same features: Image Conversion
(Automatic, which decides the file format based on image content, or GIF or JPEG for
all images), and settings for color palette and image quality and the like. See Figure 6-2.
Figure 6-2. The Export XML dialog’s Images tab, which provides optimization for web
Tagging Images as XML in InDesign | 55
If you choose to optimize images (formatted or not), the XML output includes special
attributes that point to the subfolder (automatically named /images) and also to the
location of the original image. In this example, <Image href_fmt="images/
01_f_fmt.jpg" href="file:///C:/adobeTutorial/ID_XML_Tutorial/Links/01_f
.psd"/> the href_fmt attribute contains the relative path to the optimized image from
the current InDesign document. The href attribute points to a local file folder location
of the original image that was placed in the document.
If you choose to copy original images to the subfolder, then your .psd, .ai, or other format
image files would simply be duplicated in the /images folder.
You can use XSLT to change InDesign’s <Image> elements into a differ‐
ent element, such as the HTML <img>, and just copy the href onto it.
Or you can write a different href value (path to a server folder). If you
want to do this, I recommend testing it first as a post-export transfor‐
mation, rather than as “Apply XSLT on Export” (which is more likely to
56 | Chapter 6: Exporting XML
Documents you may be interested
Documents you may be interested