c# pdfsharp sample : C# read pdf form fields control SDK system web page .net wpf console LAB%203-Advanced%20collection%20configuration0-part1327

Copyright © Greenstone Digital Library Project, University of Waikato New Zealand & Greenstone Support Network for South Asia 
27
LAB 3: 
GSDL: Advanced collection configuration 
3.1. Enhanced PDF handling 
Greenstone converts PDF files to HTML using third-party software: pdftohtml.pl. This lets users 
view these documents even if they don't have the PDF software installed. Unfortunately, 
sometimes the formatting of the resulting HTML files is not so good.  
This exercise explores some extra options to the PDF plugin which may produce a nicer version 
for display. Some of these options use the standard pdftohtml program, others use ImageMagick 
and Ghostscript to convert the file to a series of images. Ghostscript is a program that can 
convert Postscript and PDF files to other formats. You can download it from 
http://www.cs.wisc.edu/~ghost/
(follow the link to the current stable release).  
1.  In the Librarian Interface, start a new collection called "PDF collection" and base it on -- 
New Collection --.  
2.  In the Gather panel, drag just the PDF documents from sample_files → Word_and_PDF 
→ Documents into the new collection. Also drag in the PDF documents from 
sample_files → Word_and_PDF → difficult_pdf.  
3.  Go to the Create panel and build the collection. Examine the output from the build 
process. You will notice that one of the documents could not be processed. The following 
messages are shown: "The file pdf05-notext.pdf was recognised but could not be 
processed by any plugin.", and "5 documents were processed and included in the 
collection. 1 was rejected".  
4.  Preview the collection and view the documents. pdf05-notext.pdf does not appear as it 
could not be processed. pdf06-weirdchars.pdf was processed but looks very strange. The 
other PDF documents appear as one long document, with no sections.  
Modes in the Librarian Interface  
The Librarian Interface can operate in different modes. The default mode is Librarian mode. We 
can use Expert mode to work out why the pdf file could not be processed.  
5.  Use the Preferences... item on the File menu to switch to Expert mode and then build 
the collection again. The Create panel looks different in Expert mode because it gives 
more options: locate the <Build Collection> button, near the bottom of the window, and 
click it. Now a message appears saying that the file could not be processed, and why. 
Amongst all the output, we get the following message: "Error: PDF contains no 
extractable text. Could not convert pdf05notext.pdf to HTML format". pdftohtml.pl 
cannot convert a PDF file to HTML if the PDF file has no extractable text.  
C# read pdf form fields - extract form data from PDF in C#.net, ASP.NET, MVC, Ajax, WPF
Help to Read and Extract Field Data from PDF with a Convenient C# Solution
how to make a pdf form fillable in reader; export pdf form data to excel
C# read pdf form fields - VB.NET PDF Form Data Read library: extract form data from PDF in vb.net, ASP.NET, MVC, Ajax, WPF
Convenient VB.NET Solution to Read and Extract Field Data from PDF
extract pdf data to excel; pdf data extractor
Copyright © Greenstone Digital Library Project, University of Waikato New Zealand & Greenstone Support Network for South Asia 
28
6.  We recommend that you switch back to Librarian mode for subsequent exercises, to 
avoid confusion.  
Splitting PDFs into sections  
7.  In the Document Plugins section of the Design panel, configure PDFPlugin. Switch on 
the use_sections option.  
8.  In the Search Indexes section, check the section checkbox to build the indexes on 
section level as well as document level.  
9.  Build and preview the collection. View the text versions of some of the PDF documents. 
Note that these are now split into a series of pages, and a "go to page" box is provided. 
The format is still a bit ugly though, and pdf05-notext.pdf is still not processed.  
Using image format  
1.  If conversion to HTML doesn't produce the result you like, PDF documents can be 
converted to a series of images, one per page. This requires ImageMagick and 
Ghostscript to be installed.  
2.  In the Document Plugins section, configure PDFPlugin. Set the convert_to option to 
one of the image types, e.g. pagedimg_jpg. Switch off the use_sections option, as it is 
not used with image conversion.  
3.  Build the collection and preview. All PDF documents (including pdf05-notext.pdf) have 
been processed and divided into sections, but each section displays "This document has 
no text.". For the conversion to images for PDF documents, no text is extracted.  
4.  In order to view the documents properly, you will need to modify the format statement. 
In the Format Features section on the Format panel, select the DocumentText format 
statement. Replace  
[Text] 
with  
[srcicon] 
5.  Preview the collection. Images from the document are now displayed instead of the 
extracted text. Both pdf05-notext.pdf and pdf06-weirdchars.pdf display nicely now.  
In this collection, we only have PDF documents and they have all been converted to 
images. If we had other document types in the collection, we should use a different format 
statement, such as:  
{If}{[parent:FileFormat] eq PDF,[screenicon],[Text]} 
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
C#.NET extract image from multiple page adobe PDF file library Extract various types of image from PDF file, like XObject Image, XObject Form, Inline Image
extract data from pdf forms; cannot save pdf form in reader
C# PDF Text Extract Library: extract text content from PDF file in
XDoc.PDF ›› C# PDF: Extract PDF Text. C# PDF - Extract Text from PDF in C#.NET. Best C#.NET PDF text extraction library and component for free download.
make pdf form editable in reader; pdf data extraction
Copyright © Greenstone Digital Library Project, University of Waikato New Zealand & Greenstone Support Network for South Asia 
29
FileFormat is an extracted metadata item which shows the format of the source 
document. We can use this to test whether the documents are PDF or not: for PDF 
documents, display [srcicon], for other documents, display [Text].  
Using process_exp to control document processing (advanced)  
6.  Processing all of the PDF documents using an image type may not give the best result for 
your collection. The images will look nice, but as no text is extracted, searching the full 
text will not be available for these documents. The best solution would be to process most 
of the PDF files as HTML, and only use the image format where HTML doesn't work.  
7.  We achieve this by putting the problem files into a separate folder, and adding another 
PDFPlugin plugin with different options.  
8.  Go to the Gather panel. Make a new folder called "notext": right click in the collection 
panel and select New folder from the menu. Change the Folder Name to "notext", and 
click <OK>.  
9.  Move the two pdf files that have problems with html (pdf05-notext.pdf and pdf06-
weirdchars.pdf) into this folder by drag and drop. We will set up the plugins so that PDF 
files in this notext folder are processed differently to the other PDF files.  
10. For versions before 2.82 you need to change to Library Systems Specialist mode in 
order to add two of the same plugin, and use regular expressions in the plugin options 
(File → Preferences... → Mode).  
For version 2.71, you'll need to close GLI now then restart it to get the list of plugins to 
update properly.  
11. Switch to the Document Plugins section of the Design panel. Add a second PDF plugin 
by selecting PDFPlugin from the Select plugin to add: drop-down list, and clicking 
<Add Plugin...>. This plugin will come after the first PDF plugin, so we configure it to 
process PDF documents as HTML. Set the convert_to option to html, and switch on the 
use_sections option. Click <OK>.  
12. Configure the first PDF plugin, and set the process_exp option to 'notext.*\.pdf'.  
13. The two PDF plugins should have options like the following:  
plugin PDFPlugin -convert_to pagedimg_jpg -process_exp ‘notext.*\.pdf’ 
plugin PDFPlugin -convert_to html -use_sections 
The paged_img version must come earlier in the list than the html version. The 
process_exp for the first PDFPlugin will process any PDF files in the notext directory. 
The second PDFPlugin will process any PDF files that are not processed by the first one.  
Note that all plugins have the process_exp option, and this can be used to customize 
which documents are processed by which plugin. For versions before 2.82 this option is 
only visible in Library Systems Specialist and Expert modes.  
C# PDF Library SDK to view, edit, convert, process PDF file for C#
PDF SDK for .NET allows you to read, add, edit, update Please refer to this C# guide to learn how to for .NET to insert, delete and update PDF form fields in C#
how to extract data from pdf file using java; extract pdf form data to excel
C# PDF File Compress Library: Compress reduce PDF size in C#.net
C#.NET PDF Document Optimization. resources: Since images are usually or large size, images size reducing can help to reduce PDF file size Flatten form fields.
how to save fillable pdf form in reader; extract table data from pdf
Copyright © Greenstone Digital Library Project, University of Waikato New Zealand & Greenstone Support Network for South Asia 
30
For versions before 2.82, change back to Librarian mode.  
14. Edit the DocumentText format statement. PDF files processed as HTML will not have 
images to display, so we need to make sure they get text displayed instead. Change 
[srcicon]
to 
{Or}{[srcicon],[Text]}
.  
15. Build and preview the collection. All PDF documents should look relatively nice. Try 
searching this collection. You will be able to search for the PDFs that were converted to 
HTML (try e.g. "bibliography"), but not the ones that were converted to images (try 
searching for "banana" or "METS").  
Opening PDF files with query terms highlighted  
16. Next we'll customize the SearchVList format statement to highlight the query terms in a 
PDF file when it is opened from the search result list. This requires Acrobat Reader 7.0 
version or higher, and currently only works on a Microsoft Windows platform.  
17. The search terms are kept in the macro variable _cgiargq_, and we append 
#search="_cgiargq_" to the end of a PDF file link to pass the query terms to the PDF 
file.  
PDFPlugin renames each PDF file as doc.pdf and saves it in a unique directory for that 
document, so we use  
_httpcollection_/index/assoc/[archivedir]/doc.pdf
to refer to the PDF source file. (However, if you used the -keep_original_filename 
option to PDFPlugin when building the collection, the original name of the PDF file is 
kept, and we use  
_httpcollection_/index/assoc/[archivedir]/[Source]
instead to locate the PDF source file.)  
18. Add SearchVList by selecting Search from the Choose Feature drop down list, and 
VList from the Affected Component list. Click <Add Format> to add the SearchVList 
format statement into the list of assigned formats. We need to test whether the file is a 
PDF file before linking to doc.pdf, using 
{If}{[ex.FileFormat] eq 'PDF',,}
. For 
PDF files, we use the above format instead of the 
[ex.srclink]
and 
[ex./srclink]
variables to link to the file..  
The resulting format statement is:  
<td valign="top">[link][icon][/link]</td> 
<td valign="top">{If}{[ex.FileFormat] eq 'PDF', <a 
href=\"_httpcollection_/index/assoc/[archivedir]/doc.pdf#search=&quot;_
cgiargq_&quot;\">{Or}{[ex.thumbicon],[ex.srcicon]}</a>, 
[ex.srclink]{Or}{[ex.thumbicon],[ex.srcicon]}[ex./srclink]}</td> 
<td valign="top">[highlight] 
How to C#: Basic SDK Concept of XDoc.PDF for .NET
›› C# PDF: Basic SDK Concept. C#.NET PDF: Basic Concept of .NET XDoc.PDF SDK. Introductions to Classes and APIs Included in .NET XDoc.PDF for C# Programming.
how to flatten a pdf form in reader; c# read pdf form fields
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
form. Append one PDF file to the end of another and save to a single PDF file. Merge PDF with byte array, fields. Merge PDF without size limitation. RasterEdge
online form pdf output; exporting data from excel to pdf form
Copyright © Greenstone Digital Library Project, University of Waikato New Zealand & Greenstone Support Network for South Asia 
31
{Or}{[dc.Title],[ex.Title],Untitled} 
[/highlight]{If}{[ex.Source],<br><i>([ex.Source])</i>}</td> 
When the PDF icons are clicked in the search results, Acrobat will open the file with the 
search window open, and the query terms highlighted.  
3.2. Enhanced Word document handling 
The standard way Greenstone processes Word documents is to convert them to HTML format 
using a third-party program, wvWare. This sometimes doesn't do a very good job of conversion. 
If you are using Windows, and have Microsoft Word installed, you can take advantage of 
Windows native scripting to do a better job of conversion. If the original document was 
hierarchically structured using Word styles, these can be used to structure the resulting HTML. 
Word document properties can also be extracted as metadata.  
1.  In your digital library, preview the reports collection. Look at the HTML versions of the 
Word documents and notice how they have no structure-they have been converted to flat 
documents.  
Using Windows native scripting  
2.  In the Librarian Interface, open up the reports collection. Switch to the Design panel and 
select the Document Plugins section on the left-hand side. Double click the WordPlugin 
plugin and switch on the windows_scripting option.  
In the Search Indexes section, check the section checkbox to build the indexes on 
section level as well as document level.  
3.  Build the collection. You will notice that the Microsoft Word program is started up for 
each Word document—the document is saved as HTML from Word itself, to get a better 
conversion. Preview the collection. In the Titles list, notice that word03.doc and 
word06.doc now have a book icon, rather than a page icon. These now appear with 
hierarchical structure.  
The default behaviour for WordPlugin with windows_scripting is to section the 
document based on "Heading 1", "Heading 2", "Heading 3" styles. If you open up the 
word03.doc or word06.doc documents in Word, you will see that the sections use these 
Heading styles.  
Note, to view style information in Word, you can select Format → Styles and 
Formatting from the menu, and a side bar will appear on the right hand side. Click on a 
section heading and the formatting information will be displayed in this side bar.  
4.  Some of the documents do not use styles (e.g. word01.doc) and no structure can be 
extracted from them. Some documents use user-defined styles. WordPlugin can be 
C# PDF Field Edit Library: insert, delete, update pdf form field
C#.NET Demo Code: Add Form Fields to an Existing PDF File in C#.NET. This C# demo will help you to add form fields to PDF file. String
filling out pdf forms with reader; how to save a filled out pdf form in reader
.NET PDF Document Viewing, Annotation, Conversion & Processing
XDoc.PDF SDK for .NET is completely developed in .NET, compatible with Visual C#, Visual Basic, and Delphi for .NET. Read form data from PDF form file.
how to make pdf editable form reader; change font size pdf form reader
Copyright © Greenstone Digital Library Project, University of Waikato New Zealand & Greenstone Support Network for South Asia 
32
configured to use these styles instead of Heading 1, Heading 2 etc. Next we will 
configure WordPlugin to use the styles found in word05.doc.  
Modes in the Librarian Interface  
5.  Since versions 2.82, the Librarian Interface can operates in three modes, while for 
versions before 2.82 GLI operates in four modes. Go to File → Preferences... → Mode 
and see the modes and what functionality they provide access to. Librarian is the default 
mode.  
6.  For versions before 2.82, change the mode to Library Systems Specialist because you 
will need to use regular expressions to set up the style options in the next part of the 
exercise.  
Defining styles  
7.  Open up word05.doc in Word (by double-clicking on it in the Gather pane), and examine 
the title and section heading styles. You will see that various user-defined header styles 
are set such as:  
• 
ManualTitle: Title of the manual  
• 
ChapterTitle: Level 1 section heading 
• 
SectionHeading: Level 2 section heading  
• 
SubscriptionHeading: Level 3 section heading 
• 
AppendixTitle: Appendix section title  
8.  In the Document Plugins section of the Design panel, select WordPlugin and click 
<Configure Plugin...>. Four types of header can be set which are:  
•  level1_header (level1Header1|level1Header2|...)  
•  level2_header (level2Header1|level2Header2|...)  
•  level3_header (level3Header1|level3Header2|...)  
•  title_header (titleHeader1|titleHeader2|...)  
These header options define which styles should be considered as title, level 1, level 2 
and level 3 styles.  
Ensure that the windows_scripting option is checked, and  set the options as follows 
(spaces in the Word styles are removed when converting to HTML styles, and these 
options must match the HTML styles):  
level1_header:(ChapterTitle|AppendixTitle) 
level2_header: SectionHeading 
level3_header: SubjectHeading 
title_header: ManualTitle 
Once these are set, click <OK>.  
Copyright © Greenstone Digital Library Project, University of Waikato New Zealand & Greenstone Support Network for South Asia 
33
9.  Close any documents that are still open in Word, as this can prevent the build process 
from completing correctly.  
10. Build the collection and preview it. Look in particular at word05.doc. You will see that 
this document is now also hierarchically structured.  
If you have documents with different formatting styles, you can use 
(...|...)
to specify 
all of the different styles.  
Removing pre-defined table of contents  
11. If you look at word06.doc you will see that it now has two tables of contents. One is 
generated by Greenstone based on the document's styles, the other was already defined in 
the Word document. WordPlugin can be configured to remove predefined tables of 
contents and tables of figures. The tables must be defined with Word styles in order for 
this to work.  
12. To remove the tables of contents and figures from word06.doc, switch on the delete_toc 
option in WordPlugin. Set the toc_header option to 
(MsoToc1|MsoToc2|MsoToc3|MsoTof|TOA)
. In this document, the table of contents and 
list of figures use these four style names. Click <OK>.  
13. Build and preview the collection. word06.doc should now have only one table of 
contents.  
14. For versions before 2.82, , switch the Librarian Interface back to Librarian mode (File 
→ Preferences... → Mode).  
Extracting document properties as metadata  
15. When the windows_scripting option is set, word document properties can be extracted 
as metadata. By default, only the Title will be extracted. Other properties can be extracted 
using the metadata_fields option.  
16. In the Enrich panel, look at the metadata that has been extracted for word05.doc and 
word06.doc. Now open the documents in Word and look at what properties have been set 
(File → Properties). They have Title, Author, Subject, and Keywords properties. 
WordPlugin can be configured to look for these properties and extract them.  
17. In the Design panel, under Document Plugins, configure WordPlugin once again. 
Switch on the configuration option metadata_fields. Set the value to  
Title,Author<Creator>,Subject,Keywords<Subject> 
Copyright © Greenstone Digital Library Project, University of Waikato New Zealand & Greenstone Support Network for South Asia 
34
This will make WordPlugin try to extract Title, Author, Subject and Keywords 
metadata. Title and Subject will be saved with the same name, while Author will be 
saved as Creator metadata, and Keywords as Subject metadata.  
18. Make sure you have closed all the documents that were opened, then rebuild the 
collection.  
19. Look at the metadata for the two documents again in the Enrich panel. You should now 
see ex.Creator and ex.Subject metadata items. This metadata can now be used in display 
or browsing classifiers etc.  
3.4. A large collection of HTML files—Tudor 
1.  Invoke the Greenstone Librarian Interface (from the Windows Start menu) and start a 
new collection called tudor (use the File menu), based on the default -- New Collection -
-.  
2.  In the Gather panel, open the tudor folder in sample_files.  
3.  Drag englishhistory.net from the left-hand side to the right to include it in your tudor 
collection. (This material is from Marilee Hanson's Tudor England Collection at 
http://englishhistory.net/tudor.html
, distributed with her permission.) 
4.  Switch to the Create panel and click <Build Collection>.  
5.  When building has finished, preview the collection.  
Extracting more metadata from the HTML  
6.  The browsing facilities in this collection (Titles and Filenames) are based entirely on 
extracted metadata. Return to the Enrich panel in the Librarian Interface and examine the 
metadata that has been extracted for some of the files.  
7.  Many HTML documents contain metadata in 
<meta>
tags in the 
<head>
of the page. 
Open up the englishhistory.net → tudor → monarchs → boleyn.html file by navigating to 
it in the tree on the left hand side, and double clicking it. This will open it in a web 
browser. View the HTML source of the page (View → Source in Internet Explorer, View 
→ Page Source in Mozilla). You will notice that this page has page_topic, content and 
author metadata.  
8.  By default, HTMLPlugin only looks for Title metadata. Configure the plugin so that it 
looks for the other metadata too. Switch to the Design panel and select the Document 
Plugins section. Select the plugin HTMLPlugin line and click <Configure Plugin...>. 
A popup window appears. Switch on the metadata_fields option, and set the value to  
Title,Author,Page_topic,Content 
Copyright © Greenstone Digital Library Project, University of Waikato New Zealand & Greenstone Support Network for South Asia 
35
Make sure that you have copied this exactly, with no spaces. Click <OK>.  
9.  Switch to the Create panel and rebuild the collection. Go back to the Enrich panel and 
look at the extracted metadata for some of the HTML files in englishhistory.net → tudor 
→ monarchs. The new metadata should now be visible.  
Looking at different views of the files in the Gather and Enrich panels  
12. Switch to the Gather panel and in the right-hand side open englishhistory.net → tudor.  
13. Change the Show Files menu for the right-hand side from All Files to HTM & HTML. 
Notice the files displayed above are filtered accordingly, to show only files of this type.  
14. Change the Show Files menu to Images. Again, the files shown above alter.  
15. Now return the Show Files setting back to All Files, otherwise you may get confused 
later. Remember, if the Gather or Enrich panels do not seem to be showing all your 
files, this could be the problem.  
3.5. Enhanced collection of HTML files—Tudor 
We return to the Tudor collection and add metadata that expresses a subject hierarchy. Then we 
build a classifier that exploits it by allowing readers to browse the documents about Monarchs, 
Relatives, Citizens, and Others separately.  
Adding hierarchically-structured metadata and a Hierarchy classifier  
1.  Open up your tudor collection, switch to the Enrich panel and select the citizens folder 
(a subfolder of englishhistory.net → tudor). Set its dc.Subject and Keywords metadata 
to Tudor period|Citizens. The vertical bar ("|") is a hierarchy marker. Selecting a folder 
and adding metadata has the effect of setting this metadata value for all files contained in 
this folder, its subfolders, and so on. A popup alerts you to this fact. Click <OK> to close 
the popup.  
2.  Repeat for the monarchs and relative folders, setting their dc.Subject and Keywords 
metadata to Tudor period|Monarchs and Tudor period|Relatives respectively. Note 
that the hierarchy appears in the Existing values for dc.Subject and Keywords area.  
If you don't want to see the popup each time you add folder level metadata, tick the Do 
not show this warning again checkbox; it won't be displayed again.  
3.  Finally, select all remaining files—the ones that are not in the citizens, monarchs, or 
relative folders—by selecting the first and shift-clicking the last. Set their dc.Subject 
and Keywords metadata to Tudor period|Others: this is done in a single operation 
(there is a short delay before it completes).  
Copyright © Greenstone Digital Library Project, University of Waikato New Zealand & Greenstone Support Network for South Asia 
36
When multiple files are selected in the left hand collection tree, all metadata values for all 
files are shown on the right hand side. Items that are common to all files are displayed in 
black—e.g. dc.Subject and Keywords—while others that pertain to only one or some of 
the files are displayed in grey—e.g. any extracted metadata.  
Metadata inherited from a parent folder is indicated by a folder icon to the left of the 
metadata name. Select one of the files in the relative folder to see this.  
4.  Switch to the Design panel and select Browsing Classifiers from the left-hand list. Set 
the menu item for Select classifier to add: to Hierarchy; then click <Add Classifier...>.  
5.  A window pops up to control the classifier's options. Change the metadata to dc.Subject 
and Keywords and then click <OK>.  
6.  For tidiness' sake, remove the classifier for Source metadata (included by default) from 
the list of currently assigned classifiers, because this adds little to the collection.  
7.  Now switch to the Create panel, build the collection, and preview it. Choose the new 
Subjects link that appears in the navigation bar, and click the bookshelves to navigate 
around the four-entry hierarchy that you have created.  
Adding a hierarchical phrase browser (PHIND)  
Next we'll add an interactive hierarchical phrase browsing classifier to this collection.  
8.  Switch to the Design panel and choose the Browsing Classifiers item from the left-hand 
list.  
9.  Choose Phind from the Select classifier to add: menu. Click <Add Classifier...>. A 
window pops asking for configuration options: leave the values at their preset defaults 
(this will base the phrase index on the full text) and click <OK>.  
10. Build the collection again, preview it, and try out the new Phrases option in the 
navigation bar. An interesting PHIND search term for this collection is "king". Note that 
even though it is called a phrase browser, only single terms can be used as the starting 
point for browsing.  
Partitioning the full-text index based on metadata values  
Next we partition the full-text index into four separate pieces. To do this we first define four 
subcollections obtained by "filtering" the documents according to a criterion based on their 
dc.Subject and Keywords metadata. Then an index is assigned to each subcollection. This will 
enable users to restrict a search to a subset of the documents.  
Documents you may be interested
Documents you may be interested