2.4  Extracting Information from PDF
I mentioned that the PDF file format fits not the needs of all people, because it is hard to
extract information from these files. The term “information” can be mean several things in the
context of a PDF file, because PDF files can contain text, graphic and hypertext elements.
PDF was designed to be a print-layout format, and not intended to be editable. Thus, an
extraction tool would have a lot of problems to face.
There are several elements of PDF that may produce errors during the conversion process
[Gross, 2003]:
1.  Word Spaces,
2.  Hyphens,
3.  Emphasis, Super and Subscripting, and
4.  Special Characters and sub-fonting.
After looking at this possible error sources, we can say that we might consider that the
converted information is correct, but we can never be sure of it. Therefore, it would be
meaningful to use some correction algorithms to overcome such situations.
Extraction structure from a PDF file is another non-trivial issue, because PDF specifies only
the position of elements in a page, and tell us nothing about the structure of the documents. A
conversion tool that wants to store the extracted documents in a structured file format must
use additional algorithms to rebuild the structure of the original document.
Some structural elements cause usually problems [Gross, 2003]:
1.  Multiple Columns: Many documents have structured their page layout in form of two
or more text columns. Such a form is usually seen in newspaper articles, or technical
reports. This problem is not so hard to solve, but in some cases (e.g., too short
columns) it would be harder to detect multiple columns, which would lead in a
completely wrong extraction.
2.  Paragraph Delineation: In PDF there is nothing that indicates the end of a paragraph.
The extraction tool must guess where a paragraph ends.
3.  Page Header and Footer: In PDF there is nothing that marks a text as footer or
header. The extraction tool can only make use of the fact that such elements appear on
every page to state that an element is a page header or footer.
4.  Tables: These elements are one of the hardest elements to extract and even to
recognize. There are no rules for creating tables, which means that a table have no
predictable  structure.  The  extraction  tool  must  use  heuristics  to recognize and
decompose the table structure. In Section 5.1.2, I give a detailed explanation about the
problems of table extraction.
5.  Graphics: Graphics are often used elements in PDF files. Sometimes the whole PDF
file consists of only graphic elements, for example, if you scan some paper and save it
as a PDF file. Extracting text from such files requires special recognition algorithms.
In other cases, if the graphic is really a graphic, it may be still hard to guess which part
of the file belongs to the graphic or not.
6.  Mathematical Equations: These elements are highly complex elements that are not
so easy to extract. The simplest way is to leave these elements as images.
Pdf create fillable form - C# PDF Form Data fill-in Library: auto fill-in PDF form data in C#.net, ASP.NET, MVC, WinForms, WPF
Online C# Tutorial to Automatically Fill in Field Data to PDF
convert fillable pdf to html form; auto fill pdf form fields
Pdf create fillable form - VB.NET PDF Form Data fill-in library: auto fill-in PDF form data in vb.net, ASP.NET, MVC, WinForms, WPF
VB.NET PDF Form Data fill-in library: auto fill-in PDF form data in vb.net, ASP.NET, MVC, WinForms, WPF
convert pdf to fillable form; convert pdf to fillable form online
Information Processing with XML
In this chapter I will give an introduction to the famous extensible mark-up language (XML).
The information in this chapter highly depends on the book “Learning XML”. [Ray, 2001]
More detailed information about XML can be found in this book.
Furthermore, I will point out the properties of XML that makes it desirable for IP.
3.1  History and Description of XML
At  the  beginning,  there  was  the  standard generalized  mark-up  language  (SGML),  a
descendent of the generalized mark-up language (GML), developed by Charles Goldfarb,
Edward Mosher, and Raymond Lorie. SGML is a powerful meta-language (i.e., it can be used
to build a mark-up language for documents) but it is also complex and was used generally by
organisations that can afford both the software and the cost of maintaining complicated
SGML and had complex publishing requirements. Thus, we cannot define SGML as a
language for everyday use, for example, for web publishing.
XML was developed by an XML Working Group formed under the auspices of the World
Wide Web Consortium (W3C) in 1996 as a subset of SGML, to simplify SGML and to make
it applicable for general purpose. This consortium was created in October 1994. Their aim is
described on their website as follows“to lead the World Wide Web to its full potential by
developing common protocols that promote its evolution and ensure its interoperability.”
W3C publishes Recommendations, which are specifications or sets of guidelines that are
reviewed by the members or other interested parties and received their endorsements of the
Director. The Recommendation for XML contains, among other things, the design goals for
XML. If you are interested in the complete recommendation, you are referred to the website
of the W3C.
The design goals for XML are:
1.  XML shall be straightforwardly usable over the Internet.
2.  XML shall support a wide variety of applications.
3.  XML shall be compatible with SGML.
4.  It shall be easy to write programs which process XML documents.
5.  The number of optional features in XML is to be kept to the absolute minimum, ideally zero.
VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to
Convert multiple pages PowerPoint to fillable and editable PDF documents. Easy to create searchable and scanned PDF files from PowerPoint.
convert pdf to form fillable; convert word to fillable pdf form
VB.NET Create PDF from Word Library to convert docx, doc to PDF in
Edit Bookmark. Metadata: Edit, Delete Metadata. Form Process. Create PDF files from both DOC and DOCX formats. Convert multiple pages Word to fillable and editable
pdf add signature field; convert pdf to fill in form
6.  XML documents should be human-legible and reasonably clear.
7.  The XML design should be prepared quickly.
8.  The design of XML shall be formal and concise.
9.  XML documents shall be easy to create.
10. Terseness in XML markup is of minimal importance.
XML itself is, despite its name, not a mark-up language. XML is, like SGML, a meta-
language, which means that the user can use it to build her own mark-up language. A mark-up
language is a set of symbols (tags) that can be placed in the text indicating the role of a
portion of text.
Whereas, mark-up languages, like HTML, focus on how to display data, XML focus on what
the data actually is. HTML contains an amount of predefined tags that a web designer can use
to give the web site the look she wants. The web designer is limited by those predefined tags
and cannot use other ones. XML is different. In XML there are no predefined tags, you must
create your own tags.
3.2  Architecture of an XML Document
The basic unit of XML information is the XML document. An XML document is composed of
elements and other mark-up. Those elements nest inside each other and shape the content of
the document. Each document has a document element or root element at the top level which
contains the other elements. Thus, an XML document has a hierarchical tree-like structure.
XML elements can have additional information in form of attributes, which are name-value
pairs and are positioned in the start tag of an element.
Assume that I want to make an XML document to store the information about the books I
have read over the years. And assume that I want to require for each book a title. Such an
XML document may look as follows:
<?xml version="1.0" ?>
<book year=’1998’>
<title> The Kreutzer Sonata </title>
<name> Leo </name>
<surname> Tolstoy </surname>
<book year=’2003’>
<title> The Adventures of Sherlock Holmes </title>
<name> Sir Arthur Conan </name>
<surname> Doyle </surname>
Figure 2: Example for a XML document
VB.NET Create PDF from Excel Library to convert xlsx, xls to PDF
Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete Metadata. Form Process. Create fillable and editable PDF documents from Excel in Visual
form pdf fillable; create fillable form pdf online
C# Create PDF from Excel Library to convert xlsx, xls to PDF in C#
Create fillable and editable PDF documents from Excel in both .NET WinForms and ASP.NET. Create searchable and scanned PDF files from Excel.
convert fillable pdf to word fillable form; create a pdf form to fill out and save
There are two ways to create a mark-up language with XML:
1.  Freeform XML
In this form, there are just a few rules about how to form and use tags. Such a rule can
be, for example, that each start tag must have an end tag, and so forth. But there is no
restriction about the ordering or the naming of the tags. An XML file that satisfies
these rules is called a well-formed document. This way is highly error-prone. Let’s
look at the previous example with the books. It is possible that I forget somewhere to
write the title of a book. I would not recognize it until maybe a software would fail,
because of the absence of the title tag.
2.  Document Modelling
The process of defining a language in XML formally is called document modelling.
There are two document modelling standards used with XML, the Document Type
Definition (DTD) and XML Schema. Both of them are used to create specifications that
lay out the rules for how a document has to look like.
A DTD consists of a set of rules or declarations that specify which tags can be used in a
document, and what they can contain. If you use such a DTD, you must add a reference to this
DTD in your XML document. This reference declares your desire to have the document
validated. The DTD can be included in the XML document. In such a case the DTD is called
an internal DTD. The DTD can also be specified in a separate file. In this case the DTD is
called an external DTD.
Another document handling standard is known as XML Schema and provides an interesting
alternative to DTDs. XML Schema allows you to design fields in more detail than DTDs can
do. For example, you can specify the exact number of nested elements of an element. Another
difference is that XML Schema use XML as its encoding syntax.
There is no reason to have only one standard for document modelling. The fact, that there are
two of them increases the flexibility of the user. The user can choose what she wants in
respect of her purpose.
A DTD for the previous example may look as follows:
<?xml version=”1.0” ?>
<!ELEMENT mybooks (book*) >
<!ELEMENT book (title, author) >
<!ATTLIST book
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (name,surname)>
<!ELEMENT surname (#PCDATA)>
Figure 3: A possible DTD for the XML document in Figure 2
The language that I describe by this DTD contains several rules:
  The root element is mybooks and can contain zero or more book elements.
  Each book element must have two elements, one title and one author element.
C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF
Convert multiple pages PowerPoint to fillable and editable PDF documents. Easy to create searchable and scanned PDF files from PowerPoint.
create a writable pdf form; convert word doc to fillable pdf form
C# Create PDF from Word Library to convert docx, doc to PDF in C#.
Convert multiple pages Word to fillable and editable PDF documents in both .NET WinForms and ASP.NET. Easy to create searchable and scanned PDF files from
pdf create fillable form; create pdf fillable form
  Each book element must also have an attribute named year.
  Each author element must have two elements, one name element and one surname
An XML document is called valid, if the document conforms to the rules of the DTD,
referenced in this document. If a document has no reference to an external or internal DTD
but conforms to the XML syntax, the document is called a well-formed. Thus, we can say that
each valid document is also well-formed, but the opposite statement, that each well-formed
document is also valid, is not always true.
3.3  Complementary Specifications
There are some specifications that complement XML like XSLT, XPath, XLink, and so forth.
I mention here only those that are related with the presentation and transformation of XML
The presentation of an XML document is another important issue that would interest all the
people who think about preparing a document for viewing by human beings. One of the most
important properties of XML is that it separates content and style. The content is the essence
of the information and it is saved in an XML document. The style information is saved in a
stylesheet file and describes the form of output the XML document can take. Thus, the XML
documents and their stylesheets are complementary. The separation of content and style yields
in a number of noticeable properties:
1.  You can use one stylesheet for an unlimited amount  of  XML documents. That
ensuring a consistent look over the documents and reducing the costs in case of an
update. Assuming you want to change the look of your documents. In such a case you
do not have to change all the documents one by one, you must only change the
2.  You can support more than one versions of the same content in different designs. This
could be useful, for example, if you want to support several output devices with
different display sizes like a mobile device (e.g., handheld), or a printer.
3.  The work of the author who builds the document and of the designer who builds the
stylesheet is also separated. Thus, the author can concentrate on his writing while the
designer can build the stylesheet without worrying about each others work.
4.  The documents are more readable and manageable, because they have no additional
styling elements in it.
The transformation (i.e., to convert an XML document from one form to another) of an XML
document is one of the most exciting issues. Documents can be transformed by using the
Extensible Style Language for Transformations (XSLT). The ability to transform XML
documents increases your flexibility:
1.  It allows you to store the data in one format and display it in another. For example,
you can transform your content in a HTML file and display it in a web browser.
2.  It allows you to extract the information you needed. For example, you get a document
with detailed information about the books of a bookstore but you only need the titles
and the authors. By means of XSLT you can extract only those parts you need and
store it in a different document. (add)
C# Create PDF Library SDK to convert PDF from other file formats
Create fillable PDF document with fields. Load PDF from existing documents and image in SQL server. Load PDF from stream programmatically.
create a pdf with fields to fill in; create fill in pdf forms
VB.NET Create PDF Library SDK to convert PDF from other file
Create fillable PDF document with fields in Visual Basic .NET application. Load PDF from existing documents and image in SQL server.
converting a word document to a fillable pdf form; convert pdf fillable forms
3.4  Application Areas of XML
Because of the benefits of XML, it becomes a widely used technology in a large variety of
areas like document publishing, data exchange, etc. Zisman, further, points at the usefulness
of XML for the creation of vocabularies, depending on its flexibility. For a list of such XML
applications, I quote the following [Zisman, 2000]:
Because of its flexibility, XML allows the creation of many vocabularies, as standards for various
domains. XML  can be  seen as the grammar  and a  particular  application  as  the  vocabulary.
Examples of some XML application can be found in the following domains:
  Finance/commerce:  Open  Financial  Exchange  (OFX),  Open  Trading  Protocol  (OPT),
Financial Information eXchange Markup Language (FIXML).
  Push publishing technology: Channel Definition Format (CDF).
  Web  automation:  Web  Interface  Definition  Language  (WIDL),  Web-based  Distributed
Authoring and Versioning (WebDAV).
  Multimedia: Synchronized Multimedia  Integration Language  (SMIL),  Precision Graphics
Markup Language (PGML).
  Software distribution: Open Software Description (OSD).
  Scientific  data:  Chemical  Markup  Language  (CML),  Mathematical  Markup  Language
  Software Engineering: UML eXchange Format (UXF), XML Metadata Interchange (XMI).
  Language  oriented:  Ontology  Markup Language (OML),  Conceptual Knowledge Markup
Language (CKML).
  Metadata: Research Description Framework (RDF), XML-Data, XML Metadata Interchange
The benefits of using XML in the business area are also of great importance. This leads from
the ability of XML to cover most of the business related tasks which have generally high costs
when used old methods. One of these tasks is, for example, the exchange of data between
organisations or even between departments of the same organisation. Organisations have
generally different data formats in which they store their business relevant information. If two
organisations have to interchange messages (or more generally data) an exchange standard
must be established to guarantee correct and effective data exchange.
Another important area is the area of Web  Services (i.e. tools that enable software to
interoperate automatically). Some of the standards which are based on XML are, for example,
the Simple Object Access Protocol (SOAP), Web Services Description Language (WSDL),
and Universal Description, Discovery and Integration (UDDI).
Web designers also see the potential in XML and try to make use of this technology. The
main reason is that XML separates content and layout. Thus, a web designer could build
several layouts with XSLT for the same XML document with not much effort. This makes it
easier for the web designer to create layouts for different devices (like Personal Digital
Assistants  (PDAs), a computer monitor,  etc.)  with  the  same XML document. [Roy  &
Ramanujan, 2000]
The application area of XML that I’m interested in is the area of IP. Thus, the next subsection
will contain the benefits of XML usage for IP purposes.
VB.NET Create PDF from OpenOffice to convert odt, odp files to PDF
Create PDF document from OpenOffice Text Document with embedded Export PDF document from OpenOffice Presentation. ODT, ODS, ODP forms into fillable PDF formats.
adding a signature to a pdf form; pdf fillable forms
C# Create PDF from OpenOffice to convert odt, odp files to PDF in
Create PDF document from OpenOffice Presentation in both .NET WinForms and ASP.NET NET control to change ODT, ODS, ODP forms to fillable PDF formats in Visual
convert pdf forms to fillable; convert pdf into fillable form
3.5  XML in Information Processing
As I mentioned earlier, XML is a structure based language. This makes it attractive for further
processing, either manual or automatic.
Manual processing with XML documents is much easier than with unstructured documents,
because a human being can recognize the logical structure and make use of it. One can also
make use of several complementary specifications of XML.
The complementary specifications of XML are also useful for IP purposes. XSLT is a good
example for this because it can be used for each of the following types of tasks [Alexiev,
2004, p.60]:
  Transform from XML to a simple textual format (extract data).
  Transform from XML to a publishing format for printing. Here we target document that has
little if any logical relation to the input document, so usually we go through the intermediate
step of generating Formatting Objects (XSLT-FO). Then the FOs are transformed to printer-
ready output (PDF, PCL, etc) by a FO Processor (e.g. Apache-FOP).
  Transform from XML to an XML format for publication, such as XHTML (and its poor
cousin HTML), SVG, MathML, etc. Here the target document may contain some “garbage”
(presentation stuff), but a lot of it has logical relation to the source.
  Transform from one XML schema to another XML schema. Here almost all of the generated
data is logically related to the source.
Most relevant to data integration are the first and last tasks in the list above:
  Extraction can pick up data fields from a semi-structured document and use them in further
processing (e.g. to save to database).
  Transformation of data-centric XML schemas is key to XML data processing.
The interface between an application and an XML file is the parser. A parser reads an XML
file and gives the application access to the content and structure of this XML file. There are
two common types of XML parser application programming interfaces (APIs): Document
Object  Model (DOM) and Simple  API for  XML  (SAX).  These  parsers  have different
properties and are suitable for different purposes.
The DOM parser, for example, is a parser that represents an XML document as a tree,
whereas each element in the document is a node. DOM allows an API to access and modify
parts of the document and to navigate in the document. DOM requires the document’s entire
structure in memory. Thus, it uses much memory and is slow.
The SAX parser, on the other hand, doesn’t build the whole structure of an XML document,
but scans an XML document and fires the events, such as element start or end. The handlers,
implemented by the application programs, receive these events and do appropriate processing.
SAX is fast and good suited for large documents, but it allows no re-processing.
There are many free parsers available in different programming languages which makes the
work of the programmers much easier. [Jaideep & Ramanujan, 2000]
3.6 Limitations of XML
So far we have seen what XML actually is, how XML documents look like, what possibilities
it offers, and its application areas. Now it is time to look at the limitations of XML, because it
cannot be said that XML is the perfect solution for every purpose. It is limited in terms of the
data types it supports: XML is a text-based format and has no means for supporting complex
data types such as multimedia data. Further, XML is limited in terms of security: XML has no
facilities to ensure a secure exchange of XML documents. XML documents are only simple
text documents without any encryption facilities. [Roy & Ramanujan, 2000]
Comparison of Existing PDF Extraction
I will give you a short report about how good existing conversion tools work. There exist just
a few pdf-to-xml converters, thus I will begin with the comparison of pdf-to-html converters.
The reason why I actually look for a conversion tool that converts a PDF file to an XML or a
HTML file is that they are more structured (marked-up) documents and more useful for
further processing.
Because I work with the extraction of table information from PDF-files, I will only compare
the tools in respect of their ability to extract table information and not in respect of all the
features they have. I will apply the tools on two tables. The first one is a “simple” table with
only a few disjoint rows and columns. The second one is a more “complex” table with
spanning rows and columns. Both tables are stem from the paper [Pinto et al, 2003]. The first
table is on page six and the second is on page three of the cited paper.
Figure 4: Example for a simple table
Figure 5: Example for a complex table
4.1  Comparison of PDF to HTML Converters
There are a few PDF to HML converters available on the web. Some of them are commercial
and others are for free. I tried some of them to see whether they produce usable results or not.
4.1.1  PDF 2 HTML
This tool was developed by Gueorgui Ovtcharov and Rainer Dorsch. It is an open source tool
that you can download for free
. The installation is quite simple. You just have to download
and extract the zip-file, and the program is ready to run. On the website there is also a GUI for
this program, in case you do not want to run the program from the command line.
You can see the standard look of the tool in Figure 6. With the “More Options” button you get
the look in Figure 7, where you can additionally choose the creation of an XML document,
otherwise the tool creates only HTML documents.
Figure 6: User interface of the pdf2html tool
Documents you may be interested
Documents you may be interested