A Brief Introduction to OpenOffice.org Writer Files California

Get started on the path to taking programmatic control of your files and adding value to OpenOffice.org's no-cost price tag by using XML.

Local Companies

Solix Technologies
408.328.6456
685 West Maude Ave
Sunnyvale, , CA
cccp
408-265-2902
2585 Westgate Ave
San Jose, CA
PlanetTogether LLC
858-764-4258
PO Box 223
Del Mar, CA
I(2) Drive
310 498-2955
2344 28th Street
Santa Monica, CA
C&R Web Services
877-651-9136
P.O. Box 2453
Santa Clara, CA
Ricka IT Services
415-298-8769
1776 Baker CT
San Francisco, CA
U-PIC Insurance Services
800-955-4623
28001 Dorothy Dr
Agoura Hills, CA
Xerosoft
1-888-838-8011
5694 Mission Center Road #315
San diego, CA
Multirate Systems
858-204-5957
8856 Calle Tragar
San Diego , CA
smartData Enterprises
646-367-8215
706 Colorado Avenue,
Palo Alto, CA 94303, CA


A Brief Introduction to OpenOffice.org Writer Files

provided by: 
Originally published at Internet.com


Open Office.org Writer, a no-cost, open-source answer to otherwise pricey, commercial word processing applications, stores its files with an "odt" extension. Even users with casual familiarity with Writer may be surprised to know this file is nothing more than a standard "zip" file full of XML files. The implication behind this fact is this: armed with a little knowledge of these internal files, you can programmatically create and edit them.

In this article, I will discuss some of the basic concepts relating to the ODT file itself. I will not discuss how to actually use OpenOffice.org Writer itself—the lessons involved to gain efficient competency with any word processing application would provide ample material to fill a book.

Opening the ODT File

To get started, you of course need an ODT file. Once you have one, unzipping the file gives you (among other things) four XML files: * content.xml: The actual content of a document. * meta.xml: Meta-data such as creation date, editor, and statistics (word count, and so forth). * settings.xml: OpenOffice.org program settings and preferences local to the document itself. * styles.xml: Formatting styles (for paragraphs, characters, and so on) defined by OpenOffice.org and by the author.

Additional files and directories will turn up (some of them depending on just what is in the document, such as a possible "Pictures" directory). However, for the purposes of this article, I will mainly discuss the content.xml and styles.xml files. The main reason for dismissing the presence of the additional files is this: If you're reading or editing material in an existing ODT file, their presence does not generally matter anyway, and if you are creating a new document programmatically, the simplest way is to "edit" an empty template file and save it to a new name. This is perhaps the safest strategy to use because it lets you focus entirely on the content of the document you want to process.

Content

The content.xml file, as mentioned above, is the real meat of an ODT file: Your actual document material is stored in this file. Feel free to open the content.xml file in any text or, better yet, XML editor you have available. You should see something similar to this:

Note that I am taking some liberties to omit the elements I won't discuss, and I am sure you will forgive me for not listing all twenty-two namespace declarations in the root element. Once you have navigated to this point, note that the XML structure of your actual document material is stored in just a handful of "block-level" elements: Your Heading Here Some paragraph of stuff here. First list item text here.

The "inline-level" (that is, the character-level) formatting entities occur in span elements: Some fancy text here.

Aside from the container elements for tables and images, you know enough of the basic document structure to read or edit an OpenOffice.org file. Granted, there are still a few things worth knowing. Notably, in the above snippet examples, the ellipses are omitting the rather important "text:style-name" attribute that defines the formatting information for the material contained in that element.

Blah blah blahyadda yadda.

You can get a line break in Writer by pressing SHIFT+ENTER instead of just ENTER.

Also, the "list item" element above shows a single paragraph element. However, multiple paragraph elements are possible here. (Visually, you get a separated paragraph without an additional bullet or number.) You can get these in Writer in the following way: When you type text in a given list item, pressing ENTER takes you to the next list item; however, immediately pressing BACKSPACE once returns you in the previous list item but leaves you in a new paragraph. (And immediately pressing BACKSPACE a second time takes you out of the list mode entirely, returning you to a new standard paragraph.)

Finally, as far as the content.xml file is concerned, bulleted and numbered lists are both just lists. The formatting style of the given list and list items determines whether a bullet or a number is used to represent it in the interface to the author.

Formatting Styles

Defined styles

One thing that is not obvious to casual users of Writer is this: The most "correct" formatting your content in OpenOffice.org involves the use of pre-defined or user-defined styles in the "Styles and Formatting" tool. From here on, I will simply say "defined style" to mean both pre-defined and user-defined styles. There are style families for page-level entities (such as page and margin sizes), paragraph-level entities (which includes headers and titles), character-level entities (such as emphasis on just one word in a paragraph), and list entities. Note there are toolbar buttons in the Styles and Formatting tool window of OpenOffice.org that correspond to these families. The actual definitions of these defined styles—which font to use, what color the background is, and the like—is stored in the styles.xml file.

Moreover, defined styles behave in an inheritance fashion within their family: A given defined style is related to a parent style. In nearly object-oriented fashion, a change to a top-level defined style formatting entity (such as text color) propagates downward through related descendant styles until those descendant styles override that formatting entity. Direct and controlled use of defined styles can give some nice control and semantic meaning to content that is otherwise totally lost in the hapless application of the usual formatting buttons. Sometimes, it is important to know "why" something is in a red font face, and a defined style preserves and conveys this meaning ... not to mention gives you one central location to change all the instances in the document to a blue font face instead.

The name of the defined style in the styles.xml file generally matches the name the author sees in OpenOffice.org's interface. The biggest caveat to that statement is that special characters, including the space character, are converted to their hex-code value representation, which is then surrounded by underscores. (There is also the notable exception that the style seen as "Default" in the user interface is labeled as "Standard".) In other words, if an author applied the "Heading 1" defined style to a paragraph of text, the content.xml file would include: Your Heading Here

The "Heading_20_1" style itself, as mentioned above, is detailed in the styles.xml file itself. These details include: * That it belongs to the "paragraph" family. * That its parent style is a style simply

Digging Beyond the Surface

As may be rather evident, the above discussion barely scratches the surface of the ODT file format. However, with the knowledge I have hopefully imparted thus far, you should have little trouble "reverse engineering" the parts you need for yourself: Simply start with a blank document, add (only) the element you would like to understand, such as a table, and then save the document, unzip the ODT file, and open the content.xml file in an editor. Search through the file for a piece of text you inserted and then pick things apart. I assembled a thin folder of printouts relating to how an ODT file implements various aspects of a document; I have found the ODT file to be remarkably accessible.

Real-World Applications

At my workplace, the content material we manage, which turns into deliverable PDF files for customers, is stored in DITA XML topic files. (DITA stands for Darwin Information Typing Architecture.) This topic-based storage and management has served our in-house tech editors rather well, affording such things as content re-use, single-sourcing, and conditional content filtering. However, the content owners, those technical people closer to the product itself who own and author the raw content material, are not proficient with the DITA schemas—nor should they be.

To address the gap, we implemented an XSLT-driven process that converts the DITA material that was sent into the PDF files into a fresh "content.xml" file. This lone content.xml file is then zipped up into an otherwise blank ODT file and is made available for the content owners as part of the nightly build process. The content owners then are able to easily make edits to their content and, thanks to Writer's change-tracking feature, the tech editors can locate these changes, finesse the grammar and wording, and incorporate the changes back into the DITA XML files. I will admit right now that this particular XSLT was very complex to write—it involved step-debugging a highly recursive transform—and does not fully support the look and feel of the material as seen in the PDF file. But, for in-house editing purposes, this isn't strictly relevant: the content owners can review and approve the finalized appearance from the same PDF files that are delivered to customers.

Alternatively, you may have a process that you need to take in the other direction. Another use case involves creating a true "template" in Writer (an "ott" file) that can be given to a working group as a rather fancy fill-in form. The material in the resulting content.xml file can be scanned for (either by direct location, or by some applied style name, or via other mechanisms) and converted out to some other format. Consider the possibility of turning a "requirements" Writer document into a working skeleton for some test cases.

Closing Remarks

Hopefully, I have shown you just enough of OpenOffice.org's Writer file format to open up some possibilities for you to use it in new ways. By taking a blank document or document template, you can edit or replace the body section of the embedded content.xml file. By taking an existing document, you can find the content and transform it for other purposes. As the material inside the ODT file is readable text and reasonably well-structured XML, it is wide open to full, external, programmatic assault. Being able to take control of your own documents in this fashion is nothing short of powerful.

About the Author

Rob Lybarger works in a small IT shop in the greater Houston, TX area. Among other duties related to Ant and Java, he has written XSLT mentioned in the Real-World Applications section of this article and also performed various in-house customizations of the stock DITA processing and formatting stylesheets. At home, Rob enjoys spending time with his four month old daughter and being a highly satisfied owner of aa Mac computer.

Author: Rob Lybarger

Read article at Internet.com site

Featured Local Company

C&R Web Services

877-651-9136
P.O. Box 2453
Santa Clara, CA
http://www.crbizgroup.com

Regional Articles
- A Brief Introduction to OpenOffice.org Writer Files Adelanto CA
- A Brief Introduction to OpenOffice.org Writer Files Agoura Hills CA
- A Brief Introduction to OpenOffice.org Writer Files Alameda CA
- A Brief Introduction to OpenOffice.org Writer Files Alhambra CA
- A Brief Introduction to OpenOffice.org Writer Files Aliso Viejo CA
- A Brief Introduction to OpenOffice.org Writer Files Alpine CA
- A Brief Introduction to OpenOffice.org Writer Files Altadena CA
- A Brief Introduction to OpenOffice.org Writer Files Anaheim CA
- A Brief Introduction to OpenOffice.org Writer Files Antelope CA
- A Brief Introduction to OpenOffice.org Writer Files Antioch CA
- A Brief Introduction to OpenOffice.org Writer Files Apple Valley CA
- A Brief Introduction to OpenOffice.org Writer Files Aptos CA
- A Brief Introduction to OpenOffice.org Writer Files Arcadia CA
- A Brief Introduction to OpenOffice.org Writer Files Arcata CA
- A Brief Introduction to OpenOffice.org Writer Files Arroyo Grande CA
- A Brief Introduction to OpenOffice.org Writer Files Arvin CA
- A Brief Introduction to OpenOffice.org Writer Files Atascadero CA
- A Brief Introduction to OpenOffice.org Writer Files Atwater CA
- A Brief Introduction to OpenOffice.org Writer Files Auburn CA
- A Brief Introduction to OpenOffice.org Writer Files Avenal CA
- A Brief Introduction to OpenOffice.org Writer Files Azusa CA
- A Brief Introduction to OpenOffice.org Writer Files Bakersfield CA
- A Brief Introduction to OpenOffice.org Writer Files Baldwin Park CA
- A Brief Introduction to OpenOffice.org Writer Files Banning CA
- A Brief Introduction to OpenOffice.org Writer Files Barstow CA
- A Brief Introduction to OpenOffice.org Writer Files Bell CA
- A Brief Introduction to OpenOffice.org Writer Files Bellflower CA
- A Brief Introduction to OpenOffice.org Writer Files Belmont CA
- A Brief Introduction to OpenOffice.org Writer Files Benicia CA
- A Brief Introduction to OpenOffice.org Writer Files Berkeley CA
- A Brief Introduction to OpenOffice.org Writer Files Beverly Hills CA
- A Brief Introduction to OpenOffice.org Writer Files Bloomington CA
- A Brief Introduction to OpenOffice.org Writer Files Blythe CA
- A Brief Introduction to OpenOffice.org Writer Files Bonita CA
- A Brief Introduction to OpenOffice.org Writer Files Brawley CA
- A Brief Introduction to OpenOffice.org Writer Files Brea CA
- A Brief Introduction to OpenOffice.org Writer Files Brentwood CA
- A Brief Introduction to OpenOffice.org Writer Files Buena Park CA
- A Brief Introduction to OpenOffice.org Writer Files Burbank CA
- A Brief Introduction to OpenOffice.org Writer Files Burlingame CA
- A Brief Introduction to OpenOffice.org Writer Files Calabasas CA
- A Brief Introduction to OpenOffice.org Writer Files Calexico CA
- A Brief Introduction to OpenOffice.org Writer Files Camarillo CA
- A Brief Introduction to OpenOffice.org Writer Files Campbell CA
- A Brief Introduction to OpenOffice.org Writer Files Canoga Park CA
- A Brief Introduction to OpenOffice.org Writer Files Canyon Country CA
- A Brief Introduction to OpenOffice.org Writer Files Carlsbad CA
- A Brief Introduction to OpenOffice.org Writer Files Carmichael CA
- A Brief Introduction to OpenOffice.org Writer Files Carpinteria CA
- A Brief Introduction to OpenOffice.org Writer Files Carson CA
- A Brief Introduction to OpenOffice.org Writer Files Castaic CA
- A Brief Introduction to OpenOffice.org Writer Files Castro Valley CA
- A Brief Introduction to OpenOffice.org Writer Files Cathedral City CA
- A Brief Introduction to OpenOffice.org Writer Files Ceres CA
- A Brief Introduction to OpenOffice.org Writer Files Cerritos CA
- A Brief Introduction to OpenOffice.org Writer Files Chatsworth CA
- A Brief Introduction to OpenOffice.org Writer Files Chico CA
- A Brief Introduction to OpenOffice.org Writer Files Chino CA
- A Brief Introduction to OpenOffice.org Writer Files Chino Hills CA
- A Brief Introduction to OpenOffice.org Writer Files Chowchilla CA
- A Brief Introduction to OpenOffice.org Writer Files Chula Vista CA
- A Brief Introduction to OpenOffice.org Writer Files Citrus Heights CA
- A Brief Introduction to OpenOffice.org Writer Files Claremont CA
- A Brief Introduction to OpenOffice.org Writer Files Clovis CA
- A Brief Introduction to OpenOffice.org Writer Files Coachella CA
- A Brief Introduction to OpenOffice.org Writer Files Coalinga CA
- A Brief Introduction to OpenOffice.org Writer Files Colton CA
- A Brief Introduction to OpenOffice.org Writer Files Compton CA
- A Brief Introduction to OpenOffice.org Writer Files Concord CA
- A Brief Introduction to OpenOffice.org Writer Files Corcoran CA
- A Brief Introduction to OpenOffice.org Writer Files Corona CA
- A Brief Introduction to OpenOffice.org Writer Files Coronado CA
- A Brief Introduction to OpenOffice.org Writer Files Costa Mesa CA
- A Brief Introduction to OpenOffice.org Writer Files Covina CA
- A Brief Introduction to OpenOffice.org Writer Files Crescent City CA
- A Brief Introduction to OpenOffice.org Writer Files Culver City CA
- A Brief Introduction to OpenOffice.org Writer Files Cupertino CA
- A Brief Introduction to OpenOffice.org Writer Files Cypress CA
- A Brief Introduction to OpenOffice.org Writer Files Daly City CA
- A Brief Introduction to OpenOffice.org Writer Files Dana Point CA
- A Brief Introduction to OpenOffice.org Writer Files Danville CA
- A Brief Introduction to OpenOffice.org Writer Files Davis CA
- A Brief Introduction to OpenOffice.org Writer Files Delano CA
- A Brief Introduction to OpenOffice.org Writer Files Desert Hot Springs CA
- A Brief Introduction to OpenOffice.org Writer Files Diamond Bar CA
- A Brief Introduction to OpenOffice.org Writer Files Dinuba CA
- A Brief Introduction to OpenOffice.org Writer Files Downey CA
- A Brief Introduction to OpenOffice.org Writer Files Duarte CA
- A Brief Introduction to OpenOffice.org Writer Files Dublin CA
- A Brief Introduction to OpenOffice.org Writer Files El Cajon CA
- A Brief Introduction to OpenOffice.org Writer Files El Centro CA
- A Brief Introduction to OpenOffice.org Writer Files El Cerrito CA
- A Brief Introduction to OpenOffice.org Writer Files El Dorado Hills CA
- A Brief Introduction to OpenOffice.org Writer Files El Monte CA
- A Brief Introduction to OpenOffice.org Writer Files El Segundo CA
- A Brief Introduction to OpenOffice.org Writer Files El Sobrante CA
- A Brief Introduction to OpenOffice.org Writer Files Elk Grove CA
- A Brief Introduction to OpenOffice.org Writer Files Emeryville CA
- A Brief Introduction to OpenOffice.org Writer Files Encinitas CA
- A Brief Introduction to OpenOffice.org Writer Files Encino CA
- A Brief Introduction to OpenOffice.org Writer Files Escondido CA
- A Brief Introduction to OpenOffice.org Writer Files Eureka CA
- A Brief Introduction to OpenOffice.org Writer Files Fair Oaks CA
- A Brief Introduction to OpenOffice.org Writer Files Fairfield CA
- A Brief Introduction to OpenOffice.org Writer Files Fallbrook CA
- A Brief Introduction to OpenOffice.org Writer Files Fillmore CA
- A Brief Introduction to OpenOffice.org Writer Files Folsom CA
- A Brief Introduction to OpenOffice.org Writer Files Fontana CA
- A Brief Introduction to OpenOffice.org Writer Files Fountain Valley CA
- A Brief Introduction to OpenOffice.org Writer Files Fremont CA
- A Brief Introduction to OpenOffice.org Writer Files Fresno CA
- A Brief Introduction to OpenOffice.org Writer Files Fullerton CA
- A Brief Introduction to OpenOffice.org Writer Files Galt CA
- A Brief Introduction to OpenOffice.org Writer Files Garden Grove CA
- A Brief Introduction to OpenOffice.org Writer Files Gardena CA
- A Brief Introduction to OpenOffice.org Writer Files Gilroy CA
- A Brief Introduction to OpenOffice.org Writer Files Glendale CA
- A Brief Introduction to OpenOffice.org Writer Files Glendora CA
- A Brief Introduction to OpenOffice.org Writer Files Goleta CA
- A Brief Introduction to OpenOffice.org Writer Files Granada Hills CA
- A Brief Introduction to OpenOffice.org Writer Files Granite Bay CA
- A Brief Introduction to OpenOffice.org Writer Files Grass Valley CA
- A Brief Introduction to OpenOffice.org Writer Files Hacienda Heights CA
- A Brief Introduction to OpenOffice.org Writer Files Half Moon Bay CA
- A Brief Introduction to OpenOffice.org Writer Files Hanford CA
- A Brief Introduction to OpenOffice.org Writer Files Harbor City CA
- A Brief Introduction to OpenOffice.org Writer Files Hawaiian Gardens CA
- A Brief Introduction to OpenOffice.org Writer Files Hawthorne CA
- A Brief Introduction to OpenOffice.org Writer Files Hayward CA
- A Brief Introduction to OpenOffice.org Writer Files Healdsburg CA
- A Brief Introduction to OpenOffice.org Writer Files Hemet CA
- A Brief Introduction to OpenOffice.org Writer Files Hercules CA
- A Brief Introduction to OpenOffice.org Writer Files Hermosa Beach CA
- A Brief Introduction to OpenOffice.org Writer Files Hesperia CA
- A Brief Introduction to OpenOffice.org Writer Files Highland CA
- A Brief Introduction to OpenOffice.org Writer Files Hollister CA
- A Brief Introduction to OpenOffice.org Writer Files Huntington Beach CA
- A Brief Introduction to OpenOffice.org Writer Files Huntington Park CA
- A Brief Introduction to OpenOffice.org Writer Files Imperial Beach CA
- A Brief Introduction to OpenOffice.org Writer Files Indio CA
- A Brief Introduction to OpenOffice.org Writer Files Inglewood CA
- A Brief Introduction to OpenOffice.org Writer Files Irvine CA
- A Brief Introduction to OpenOffice.org Writer Files King City CA
- A Brief Introduction to OpenOffice.org Writer Files La Canada Flintridge CA
- A Brief Introduction to OpenOffice.org Writer Files La Crescenta CA
- A Brief Introduction to OpenOffice.org Writer Files La Habra CA
- A Brief Introduction to OpenOffice.org Writer Files La Jolla CA
- A Brief Introduction to OpenOffice.org Writer Files La Mesa CA
- A Brief Introduction to OpenOffice.org Writer Files La Mirada CA
- A Brief Introduction to OpenOffice.org Writer Files La Palma CA
- A Brief Introduction to OpenOffice.org Writer Files La Puente CA
- A Brief Introduction to OpenOffice.org Writer Files La Quinta CA
- A Brief Introduction to OpenOffice.org Writer Files La Verne CA
- A Brief Introduction to OpenOffice.org Writer Files Laguna Beach CA
- A Brief Introduction to OpenOffice.org Writer Files Laguna Hills CA
- A Brief Introduction to OpenOffice.org Writer Files Laguna Niguel CA
- A Brief Introduction to OpenOffice.org Writer Files Lake Elsinore CA
- A Brief Introduction to OpenOffice.org Writer Files Lake Forest CA
- A Brief Introduction to OpenOffice.org Writer Files Lakeside CA
- A Brief Introduction to OpenOffice.org Writer Files Lakewood CA
- A Brief Introduction to OpenOffice.org Writer Files Lamont CA
- A Brief Introduction to OpenOffice.org Writer Files Lancaster CA
- A Brief Introduction to OpenOffice.org Writer Files Lawndale CA
- A Brief Introduction to OpenOffice.org Writer Files Lemon Grove CA
- A Brief Introduction to OpenOffice.org Writer Files Lemoore CA
- A Brief Introduction to OpenOffice.org Writer Files Livermore CA
- A Brief Introduction to OpenOffice.org Writer Files Lodi CA
- A Brief Introduction to OpenOffice.org Writer Files Loma Linda CA
- A Brief Introduction to OpenOffice.org Writer Files Lomita CA
- A Brief Introduction to OpenOffice.org Writer Files Lompoc CA
- A Brief Introduction to OpenOffice.org Writer Files Long Beach CA
- A Brief Introduction to OpenOffice.org Writer Files Los Alamitos CA
- A Brief Introduction to OpenOffice.org Writer Files Los Altos CA
- A Brief Introduction to OpenOffice.org Writer Files Los Angeles CA
- A Brief Introduction to OpenOffice.org Writer Files Los Banos CA
- A Brief Introduction to OpenOffice.org Writer Files Los Gatos CA
- A Brief Introduction to OpenOffice.org Writer Files Los Osos CA
- A Brief Introduction to OpenOffice.org Writer Files Lynwood CA
- A Brief Introduction to OpenOffice.org Writer Files Madera CA
- A Brief Introduction to OpenOffice.org Writer Files Malibu CA
- A Brief Introduction to OpenOffice.org Writer Files Manhattan Beach CA
- A Brief Introduction to OpenOffice.org Writer Files Manteca CA
- A Brief Introduction to OpenOffice.org Writer Files Marina CA
- A Brief Introduction to OpenOffice.org Writer Files Marina Del Rey CA
- A Brief Introduction to OpenOffice.org Writer Files Martinez CA
- A Brief Introduction to OpenOffice.org Writer Files Marysville CA
- A Brief Introduction to OpenOffice.org Writer Files Maywood CA
- A Brief Introduction to OpenOffice.org Writer Files Mckinleyville CA
- A Brief Introduction to OpenOffice.org Writer Files Menlo Park CA
- A Brief Introduction to OpenOffice.org Writer Files Merced CA
- A Brief Introduction to OpenOffice.org Writer Files Mill Valley CA
- A Brief Introduction to OpenOffice.org Writer Files Millbrae CA
- A Brief Introduction to OpenOffice.org Writer Files Milpitas CA
- A Brief Introduction to OpenOffice.org Writer Files Mira Loma CA
- A Brief Introduction to OpenOffice.org Writer Files Mission Hills CA
- A Brief Introduction to OpenOffice.org Writer Files Mission Viejo CA
- A Brief Introduction to OpenOffice.org Writer Files Modesto CA
- A Brief Introduction to OpenOffice.org Writer Files Monrovia CA
- A Brief Introduction to OpenOffice.org Writer Files Montclair CA
- A Brief Introduction to OpenOffice.org Writer Files Montebello CA
- A Brief Introduction to OpenOffice.org Writer Files Monterey CA
- A Brief Introduction to OpenOffice.org Writer Files Monterey Park CA
- A Brief Introduction to OpenOffice.org Writer Files Moorpark CA
- A Brief Introduction to OpenOffice.org Writer Files Moraga CA
- A Brief Introduction to OpenOffice.org Writer Files Moreno Valley CA
- A Brief Introduction to OpenOffice.org Writer Files Morgan Hill CA
- A Brief Introduction to OpenOffice.org Writer Files Mountain View CA
- A Brief Introduction to OpenOffice.org Writer Files Murrieta CA
- A Brief Introduction to OpenOffice.org Writer Files Napa CA
- A Brief Introduction to OpenOffice.org Writer Files National City CA
- A Brief Introduction to OpenOffice.org Writer Files Nevada City CA
- A Brief Introduction to OpenOffice.org Writer Files Newark CA
- A Brief Introduction to OpenOffice.org Writer Files Newbury Park CA
- A Brief Introduction to OpenOffice.org Writer Files Newhall CA
- A Brief Introduction to OpenOffice.org Writer Files Newport Beach CA
- A Brief Introduction to OpenOffice.org Writer Files Nipomo CA
- A Brief Introduction to OpenOffice.org Writer Files Norco CA
- A Brief Introduction to OpenOffice.org Writer Files North Highlands CA
- A Brief Introduction to OpenOffice.org Writer Files North Hills CA
- A Brief Introduction to OpenOffice.org Writer Files North Hollywood CA
- A Brief Introduction to OpenOffice.org Writer Files Northridge CA
- A Brief Introduction to OpenOffice.org Writer Files Norwalk CA
- A Brief Introduction to OpenOffice.org Writer Files Novato CA
- A Brief Introduction to OpenOffice.org Writer Files Oakdale CA
- A Brief Introduction to OpenOffice.org Writer Files Oakland CA
- A Brief Introduction to OpenOffice.org Writer Files Oakley CA
- A Brief Introduction to OpenOffice.org Writer Files Oceanside CA
- A Brief Introduction to OpenOffice.org Writer Files Ojai CA
- A Brief Introduction to OpenOffice.org Writer Files Ontario CA
- A Brief Introduction to OpenOffice.org Writer Files Orange CA
- A Brief Introduction to OpenOffice.org Writer Files Orangevale CA
- A Brief Introduction to OpenOffice.org Writer Files Orinda CA
- A Brief Introduction to OpenOffice.org Writer Files Oroville CA
- A Brief Introduction to OpenOffice.org Writer Files Oxnard CA
- A Brief Introduction to OpenOffice.org Writer Files Pacific Grove CA
- A Brief Introduction to OpenOffice.org Writer Files Pacific Palisades CA
- A Brief Introduction to OpenOffice.org Writer Files Pacifica CA
- A Brief Introduction to OpenOffice.org Writer Files Pacoima CA
- A Brief Introduction to OpenOffice.org Writer Files Palm Desert CA
- A Brief Introduction to OpenOffice.org Writer Files Palm Springs CA
- A Brief Introduction to OpenOffice.org Writer Files Palmdale CA
- A Brief Introduction to OpenOffice.org Writer Files Palo Alto CA
- A Brief Introduction to OpenOffice.org Writer Files Palos Verdes Peninsula CA
- A Brief Introduction to OpenOffice.org Writer Files Panorama City CA
- A Brief Introduction to OpenOffice.org Writer Files Paradise CA
- A Brief Introduction to OpenOffice.org Writer Files Paramount CA
- A Brief Introduction to OpenOffice.org Writer Files Pasadena CA
- A Brief Introduction to OpenOffice.org Writer Files Paso Robles CA
- A Brief Introduction to OpenOffice.org Writer Files Patterson CA
- A Brief Introduction to OpenOffice.org Writer Files Perris CA
- A Brief Introduction to OpenOffice.org Writer Files Petaluma CA
- A Brief Introduction to OpenOffice.org Writer Files Pico Rivera CA
- A Brief Introduction to OpenOffice.org Writer Files Pinole CA
- A Brief Introduction to OpenOffice.org Writer Files Pittsburg CA
- A Brief Introduction to OpenOffice.org Writer Files Placentia CA
- A Brief Introduction to OpenOffice.org Writer Files Placerville CA
- A Brief Introduction to OpenOffice.org Writer Files Pleasant Hill CA
- A Brief Introduction to OpenOffice.org Writer Files Pleasanton CA
- A Brief Introduction to OpenOffice.org Writer Files Pomona CA
- A Brief Introduction to OpenOffice.org Writer Files Port Hueneme CA
- A Brief Introduction to OpenOffice.org Writer Files Porterville CA
- A Brief Introduction to OpenOffice.org Writer Files Poway CA
- A Brief Introduction to OpenOffice.org Writer Files Ramona CA
- A Brief Introduction to OpenOffice.org Writer Files Rancho Cordova CA
- A Brief Introduction to OpenOffice.org Writer Files Rancho Cucamonga CA
- A Brief Introduction to OpenOffice.org Writer Files Rancho Palos Verdes CA
- A Brief Introduction to OpenOffice.org Writer Files Rancho Santa Margarita CA
- A Brief Introduction to OpenOffice.org Writer Files Red Bluff CA
- A Brief Introduction to OpenOffice.org Writer Files Redding CA
- A Brief Introduction to OpenOffice.org Writer Files Redlands CA
- A Brief Introduction to OpenOffice.org Writer Files Redondo Beach CA
- A Brief Introduction to OpenOffice.org Writer Files Redwood City CA
- A Brief Introduction to OpenOffice.org Writer Files Reedley CA
- A Brief Introduction to OpenOffice.org Writer Files Reseda CA
- A Brief Introduction to OpenOffice.org Writer Files Rialto CA
- A Brief Introduction to OpenOffice.org Writer Files Richmond CA
- A Brief Introduction to OpenOffice.org Writer Files Ridgecrest CA
- A Brief Introduction to OpenOffice.org Writer Files Riverbank CA
- A Brief Introduction to OpenOffice.org Writer Files Riverside CA
- A Brief Introduction to OpenOffice.org Writer Files Rocklin CA
- A Brief Introduction to OpenOffice.org Writer Files Rohnert Park CA
- A Brief Introduction to OpenOffice.org Writer Files Rosamond CA
- A Brief Introduction to OpenOffice.org Writer Files Rosemead CA
- A Brief Introduction to OpenOffice.org Writer Files Roseville CA
- A Brief Introduction to OpenOffice.org Writer Files Rowland Heights CA
- A Brief Introduction to OpenOffice.org Writer Files Sacramento CA
- A Brief Introduction to OpenOffice.org Writer Files Salinas CA
- A Brief Introduction to OpenOffice.org Writer Files San Anselmo CA
- A Brief Introduction to OpenOffice.org Writer Files San Bernardino CA
- A Brief Introduction to OpenOffice.org Writer Files San Bruno CA
- A Brief Introduction to OpenOffice.org Writer Files San Carlos CA
- A Brief Introduction to OpenOffice.org Writer Files San Clemente CA
- A Brief Introduction to OpenOffice.org Writer Files San Diego CA
- A Brief Introduction to OpenOffice.org Writer Files San Dimas CA
- A Brief Introduction to OpenOffice.org Writer Files San Fernando CA
- A Brief Introduction to OpenOffice.org Writer Files San Francisco CA
- A Brief Introduction to OpenOffice.org Writer Files San Gabriel CA
- A Brief Introduction to OpenOffice.org Writer Files San Jacinto CA
- A Brief Introduction to OpenOffice.org Writer Files San Jose CA
- A Brief Introduction to OpenOffice.org Writer Files San Juan Capistrano CA
- A Brief Introduction to OpenOffice.org Writer Files San Leandro CA
- A Brief Introduction to OpenOffice.org Writer Files San Lorenzo CA
- A Brief Introduction to OpenOffice.org Writer Files San Luis Obispo CA
- A Brief Introduction to OpenOffice.org Writer Files San Marcos CA
- A Brief Introduction to OpenOffice.org Writer Files San Mateo CA
-