open pdf file c# : How to add text box to pdf document application control tool html web page winforms online 11_07531-part384

number of characters in the reference, and Errors is the total number of edit operations needed to 
correct the hypothesis and make it identical to the reference (i.e., insertions, deletions and 
substitutions). 
The first step of the pipeline was to create the reference file for our test. For this we normalized 
the original plain text UTF-8 document, using Unicode Normal Form Compatibility 
Decomposition (NFKD). This provided a canonical Unicode UTF-8 reference file for the scoring 
step. Hence, our reference file is a normalized reference
The plan was to compare all PDF-extracted text output files—our hypothesis files—against the 
reference. The PDF extractor generated UTF-8, but, of course, we could not guarantee that each 
hypothesis file would be NFKD normalized. So, we applied two treatments to each hypothesis 
file. In the first case, we applied Unicode NFKD normalization—a normalized hypothesis file. In 
the second, we applied no normalization at all—an unnormalized hypothesis file. We expected 
that normalized hypotheses would provide a closer match to the reference, hence giving each 
method a better chance for a higher score. If normalized and unnormalized scores differed, we 
planned to be fair and report the higher score. 
In all, we scored 32 combinations of language, PDF generation method, and hypothesis 
treatment.  
Further manipulations (i.e., conversions) were necessary to match our UTF-8 data to the UNLV 
tools, which work with UTF-16. We used iconv v.1.9, distributed with Gnu libiconv 1.9.2, to 
perform such conversions.  
We based the ranking of PDF generation methods on the Accuracy scores in the UNLV 
Accuracy reports. 
2.8. Data Analysis 
The data analysis step involved a variety of tools. The UNLV tool reports provided insights into 
insertions, deletions, and substitutions. But examining the PDF Language in each PDF file was 
vital for locating at which point in the pipeline each error appeared. Acrobat’s Preflight tool 
provided invaluable insight into the ordering of text objects in each PDF prior to wading into the 
PDF code. A custom profile listed all text objects. We used Pdftk v.1.41 to decompress 
FlateDecode streams in the PDFs (Pdftk, 2010). Manual analysis of the PDF code and cross-
referencing to UNLV tool reports was time consuming and tedious. Automating the decoding of 
font code strings helped to a degree. For this, we developed a rudimentary, Perl-based font 
encoding to UTF-8 converter, which allowed us to read Arabic and Persian font code strings 
(i.e., Arabic script). 
How to add text box to pdf document - insert text into PDF content in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
XDoc.PDF for .NET, providing C# demo code for inserting text to PDF file
add text pdf file; how to add text fields in a pdf
How to add text box to pdf document - VB.NET PDF insert text library: insert text into PDF content in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Providing Demo Code for Adding and Inserting Text to PDF File Page in VB.NET Program
add text to pdf; how to insert text in pdf file
3. Results and Discussion 
In this section we present the PDF generation method Accuracy scores.  Then, we explain PDF 
generation classes and their relation to the Accuracy scores. Each section of results is followed 
by discussion. 
3.1 Results: Scores and Ranking 
Table 3 shows a summary of the results from UNLV Accuracy reports. The Filename column 
shows how the data is grouped. The Filename identifies the hypothesis treatment, the language, 
and the PDF generation method. Nrm, or Unm, indicates the hypothesis treatment. Ara, or Per
indicates the language. And the index number identifies the PDF generation method, as listed at 
the beginning of section 2.5.  
The column data associated with each Filename needs some explanation, which comes from 
Rice, et al. (1996) and Bagdanov, et al., (1999). It begins with three columns for overall scores. 
Overall Characters is the total number of characters in the reference. Overall Errors is the sum 
of insertions, deletions, and substitutions required to make the hypothesis identical to the 
reference. Overall Accuracy is the Overall Characters minus the Overall Errors, divided by the 
Overall Characters. This latter score is the score we intended to use for ranking the methods. 
The subsequent columns quantify the amount of post-editing work related to categories of 
reference characters. Each character category is specified by the category name and represented 
by three columns: CountMissed, and Percentage Right. Each column labeled Count is the total 
number of characters appearing in the reference. Each column labeled Missed is the total number 
of insertions plus substitutions required to restore the reference characters. Each third column is 
ܲ݁ݎܿ݁݊ݐ ܴ݄݅݃ݐ ൌ
஼௢௨௡௧ିெ௜௦௦௘ௗ
஼௢௨௡௧
. Character categories labeled ASCII are more or less understood, but 
we could find no documentation from UNLV on the specific code point ranges, or sets, of other 
categories: Special SymbolsBasic ArabicArabic Extended, and Punctuation. Nevertheless, we 
found them somewhat helpful.  
The final three columns reflect the post-editing work for all character categories: the Total 
Count, Missed, and Percentage Right. 
Table 3(a). Accuracy report statistics by PDF generation method, language, and treatment 
Filename 
Overall 
Characters 
Overall 
Errors 
(Insertions 
+Deletions 
+Sub-
stitutions) 
Overall 
Accuracy 
Count  
ASCII 
Spacing 
Characters 
Missed 
ASCII 
Spacing 
Characters 
Percentage 
Right 
ASCII 
Spacing 
Characters 
Count  
ASCII 
Special 
Symbols 
Missed 
ASCII 
Special 
Symbols 
Percentage 
Right 
ASCII 
Special 
Symbols 
Rpt-NrmAra01.txt 
936 
44 
95.3 
150 
10 
93.33 
85.71 
Rpt-NrmAra02.txt 
936 
44 
95.3 
150 
10 
93.33 
85.71 
Rpt-NrmAra03.txt 
936 
44 
95.3 
150 
10 
93.33 
85.71 
Rpt-NrmAra04.txt 
936 
44 
95.3 
150 
10 
93.33 
85.71 
Rpt-NrmAra05.txt 
936 
599 
36 
150 
10 
93.33 
85.71 
Rpt-NrmAra06.txt 
936 
44 
95.3 
150 
10 
93.33 
85.71 
Rpt-NrmAra07.txt 
936 
44 
95.3 
150 
10 
93.33 
85.71 
Rpt-NrmAra08.txt 
936 
44 
95.3 
150 
10 
93.33 
85.71 
Rpt-NrmPer01.txt 
957 
57 
94.04 
173 
11 
93.64 
100 
VB.NET PDF Text Box Edit Library: add, delete, update PDF text box
Protect. Password: Set File Permissions. Password: Open Document. Edit Digital Highlight Text. Add Text. Add Text Box. Drawing Markups. PDF Print. Work with
how to insert text in pdf reader; add text pdf acrobat
C# PDF Text Box Edit Library: add, delete, update PDF text box in
NET SDK library for adding text box to PDF document in .NET WinForms application. A web based PDF annotation application able to add text box comments to adobe
how to input text in a pdf; adding a text field to a pdf
10 
Filename 
Overall 
Characters 
Overall 
Errors 
(Insertions 
+Deletions 
+Sub-
stitutions) 
Overall 
Accuracy 
Count  
ASCII 
Spacing 
Characters 
Missed 
ASCII 
Spacing 
Characters 
Percentage 
Right 
ASCII 
Spacing 
Characters 
Count  
ASCII 
Special 
Symbols 
Missed 
ASCII 
Special 
Symbols 
Percentage 
Right 
ASCII 
Special 
Symbols 
Rpt-NrmPer02.txt 
957 
57 
94.04 
173 
11 
93.64 
100 
Rpt-NrmPer03.txt 
957 
62 
93.52 
173 
11 
93.64 
100 
Rpt-NrmPer04.txt 
957 
57 
94.04 
173 
11 
93.64 
100 
Rpt-NrmPer05.txt 
957 
618 
35.42 
173 
11 
93.64 
60 
Rpt-NrmPer06.txt 
957 
57 
94.04 
173 
11 
93.64 
100 
Rpt-NrmPer07.txt 
957 
62 
93.52 
173 
11 
93.64 
100 
Rpt-NrmPer08.txt 
957 
57 
94.04 
173 
11 
93.64 
100 
Rpt-UnmAra01.txt 
936 
44 
95.3 
150 
10 
93.33 
85.71 
Rpt-UnmAra02.txt 
936 
44 
95.3 
150 
10 
93.33 
85.71 
Rpt-UnmAra03.txt 
936 
38 
95.94 
150 
10 
93.33 
85.71 
Rpt-UnmAra04.txt 
936 
44 
95.3 
150 
10 
93.33 
85.71 
Rpt-UnmAra05.txt 
936 
543 
41.99 
150 
10 
93.33 
85.71 
Rpt-UnmAra06.txt 
936 
44 
95.3 
150 
10 
93.33 
85.71 
Rpt-UnmAra07.txt 
936 
38 
95.94 
150 
10 
93.33 
85.71 
Rpt-UnmAra08.txt 
936 
44 
95.3 
150 
10 
93.33 
85.71 
Rpt-UnmPer01.txt 
957 
57 
94.04 
173 
11 
93.64 
100 
Rpt-UnmPer02.txt 
957 
57 
94.04 
173 
11 
93.64 
100 
Rpt-UnmPer03.txt 
957 
57 
94.04 
173 
11 
93.64 
100 
Rpt-UnmPer04.txt 
957 
57 
94.04 
173 
11 
93.64 
100 
Rpt-UnmPer05.txt 
957 
569 
40.54 
173 
11 
93.64 
60 
Rpt-UnmPer06.txt 
957 
57 
94.04 
173 
11 
93.64 
100 
Rpt-UnmPer07.txt 
957 
57 
94.04 
173 
11 
93.64 
100 
Rpt-UnmPer08.txt 
957 
57 
94.04 
173 
11 
93.64 
100 
Table 3(b). Accuracy report statistics by PDF generation method, language, and treatment 
(Continued) 
Filename 
Count  
ASCII 
Digits 
Missed 
ASCII 
Digits 
Percentage 
Right 
ASCII 
Digits 
Count  
Basic 
Arabic 
Missed 
Basic 
Arabic 
Percentage 
Right 
Basic 
Arabic 
Count  
Arabic 
Extended 
Missed 
Arabic 
Extended 
Percentage 
Right 
Arabic 
Extended 
Rpt-NrmAra01.txt 
100 
701 
99.86 
70 
27 
61.43 
Rpt-NrmAra02.txt 
100 
701 
99.86 
70 
27 
61.43 
Rpt-NrmAra03.txt 
100 
701 
99.14 
70 
94.29 
Rpt-NrmAra04.txt 
100 
701 
99.86 
70 
27 
61.43 
Rpt-NrmAra05.txt 
33.33 
701 
494 
29.53 
70 
90 
Rpt-NrmAra06.txt 
100 
701 
99.86 
70 
27 
61.43 
Rpt-NrmAra07.txt 
100 
701 
99.14 
70 
94.29 
Rpt-NrmAra08.txt 
100 
701 
99.86 
70 
27 
61.43 
Rpt-NrmPer01.txt 
100 
672 
100 
95 
36 
62.11 
Rpt-NrmPer02.txt 
100 
672 
100 
95 
36 
62.11 
Rpt-NrmPer03.txt 
100 
672 
99.26 
95 
24 
74.74 
Rpt-NrmPer04.txt 
100 
672 
100 
95 
36 
62.11 
Rpt-NrmPer05.txt 
42.86 
672 
512 
23.81 
95 
25 
73.68 
Rpt-NrmPer06.txt 
100 
672 
100 
95 
36 
62.11 
C# PDF Annotate Library: Draw, edit PDF annotation, markups in C#.
installed. Support to add text, text box, text field and crop marks to PDF document. Able class. C#.NET: Add Text Box to PDF Document. Provide
adding text to pdf in acrobat; add text boxes to a pdf
C# WPF PDF Viewer SDK to annotate PDF document in C#.NET
Line color. Select the line color when drawing annotations on PDF document. 15. Description. 17. Text box. Click to add a text box to specific location on PDF page
add text to pdf using preview; add text to pdf without acrobat
11 
Filename 
Count  
ASCII 
Digits 
Missed 
ASCII 
Digits 
Percentage 
Right 
ASCII 
Digits 
Count  
Basic 
Arabic 
Missed 
Basic 
Arabic 
Percentage 
Right 
Basic 
Arabic 
Count  
Arabic 
Extended 
Missed 
Arabic 
Extended 
Percentage 
Right 
Arabic 
Extended 
Rpt-NrmPer07.txt 
100 
672 
99.26 
95 
24 
74.74 
Rpt-NrmPer08.txt 
100 
672 
100 
95 
36 
62.11 
Rpt-UnmAra01.txt 
100 
701 
99.86 
70 
27 
61.43 
Rpt-UnmAra02.txt 
100 
701 
99.86 
70 
27 
61.43 
Rpt-UnmAra03.txt 
100 
701 
99.14 
70 
94.29 
Rpt-UnmAra04.txt 
100 
701 
99.86 
70 
27 
61.43 
Rpt-UnmAra05.txt 
33.33 
701 
494 
29.53 
70 
91.43 
Rpt-UnmAra06.txt 
100 
701 
99.86 
70 
27 
61.43 
Rpt-UnmAra07.txt 
100 
701 
99.14 
70 
94.29 
Rpt-UnmAra08.txt 
100 
701 
99.86 
70 
27 
61.43 
Rpt-UnmPer01.txt 
100 
672 
100 
95 
36 
62.11 
Rpt-UnmPer02.txt 
100 
672 
100 
95 
36 
62.11 
Rpt-UnmPer03.txt 
100 
672 
99.26 
95 
24 
74.74 
Rpt-UnmPer04.txt 
100 
672 
100 
95 
36 
62.11 
Rpt-UnmPer05.txt 
42.86 
672 
514 
23.51 
95 
24 
74.74 
Rpt-UnmPer06.txt 
100 
672 
100 
95 
36 
62.11 
Rpt-UnmPer07.txt 
100 
672 
99.26 
95 
24 
74.74 
Rpt-UnmPer08.txt 
100 
672 
100 
95 
36 
62.11 
Table 3(c). Accuracy report statistics by PDF generation method, language, and treatment 
(Continued) 
Filename 
Count  
General 
Punctuation 
Missed 
General 
Punctuation 
Percentage 
Right 
General 
Punctuation 
Count  
Total 
Missed 
Total 
Percentage 
Right Total 
Rpt-NrmAra01.txt 
936 
41 
95.62 
Rpt-NrmAra02.txt 
936 
41 
95.62 
Rpt-NrmAra03.txt 
936 
23 
97.54 
Rpt-NrmAra04.txt 
936 
41 
95.62 
Rpt-NrmAra05.txt 
936 
518 
44.66 
Rpt-NrmAra06.txt 
936 
41 
95.62 
Rpt-NrmAra07.txt 
936 
23 
97.54 
Rpt-NrmAra08.txt 
936 
41 
95.62 
Rpt-NrmPer01.txt 
957 
52 
94.57 
Rpt-NrmPer02.txt 
957 
52 
94.57 
Rpt-NrmPer03.txt 
957 
45 
95.3 
Rpt-NrmPer04.txt 
957 
52 
94.57 
Rpt-NrmPer05.txt 
957 
559 
41.59 
Rpt-NrmPer06.txt 
957 
52 
94.57 
Rpt-NrmPer07.txt 
957 
45 
95.3 
Rpt-NrmPer08.txt 
957 
52 
94.57 
Rpt-UnmAra01.txt 
936 
41 
95.62 
Rpt-UnmAra02.txt 
936 
41 
95.62 
Rpt-UnmAra03.txt 
936 
23 
97.54 
Rpt-UnmAra04.txt 
936 
41 
95.62 
.NET PDF Document Viewing, Annotation, Conversion & Processing
PDF Write. Insert text, text box into PDF. Edit, delete text from PDF. Insert images into PDF. Add, Update, Delete form fields programmatically. Document Protect
how to add text field to pdf; add text box in pdf document
C# WinForms Viewer: Load, View, Convert, Annotate and Edit PDF
Highlight PDF text. • Add text to PDF document in preview. • Add text box to PDF file in preview. • Draw PDF markups. PDF Protection.
how to add a text box in a pdf file; how to insert text into a pdf using reader
12 
Filename 
Count  
General 
Punctuation 
Missed 
General 
Punctuation 
Percentage 
Right 
General 
Punctuation 
Count  
Total 
Missed 
Total 
Percentage 
Right Total 
Rpt-UnmAra05.txt 
936 
517 
44.76 
Rpt-UnmAra06.txt 
936 
41 
95.62 
Rpt-UnmAra07.txt 
936 
23 
97.54 
Rpt-UnmAra08.txt 
936 
41 
95.62 
Rpt-UnmPer01.txt 
957 
52 
94.57 
Rpt-UnmPer02.txt 
957 
52 
94.57 
Rpt-UnmPer03.txt 
957 
45 
95.3 
Rpt-UnmPer04.txt 
957 
52 
94.57 
Rpt-UnmPer05.txt 
957 
560 
41.48 
Rpt-UnmPer06.txt 
957 
52 
94.57 
Rpt-UnmPer07.txt 
957 
45 
95.3 
Rpt-UnmPer08.txt 
957 
52 
94.57 
This data allowed us to achieve the ranking. We observed that there are many redundant values 
in this table, which led us to think that there was something common among the files. Analysis 
of PDF file properties revealed that these eight PDF generation methods are in fact related to 
three PDF generation classes—Acrobat Distiller/PScript5.dll, PDFMaker, and Microsoft 
Word.
12
Hence, our 8 methods invoked only 3 PDF generation classes.
The Unix diff command 
confirmed that the hypothesis files for a given class, language, and hypothesis treatment, are 
identical. Table 4 lists the relationship between class and method, the best Accuracy scores, and 
the rank based on Accuracy. Acrobat Distiller/PScript5.dll and PDFMaker received comparably 
high scores and share rank 1 (96% and 95% respectively for Arabic; 94% for Persian). Microsoft 
Word ranked second due to very low Accuracy scores. 
Table 4. PDF generation classes by rank 
PDF Generation Class 
PDF Generation 
Method 
Overall Accuracy: 
Arabic* 
Overall Accuracy: 
Persian* 
Rank 
Acrobat 
Distiller/PScript5.dll 
3, 7 
96% 
94% 
PDFMaker 
1, 2, 4, 6, 8 
95% 
94% 
Microsoft Word 
42% 
41% 
* These are unnormalized scores. See the following section for discussion. 
3.2. Discussion: Scores and Ranking 
We need to give a word of caution about correlating these Accuracy scores with Accuracy scores 
in other reports. These Accuracy scores do not reflect the type of Accuracy that we would see on 
real documents. Accuracy typically describes performance on a real-world human language 
document—and we did not use real-world documents. Rather we used systematically fabricated 
documents intended for comprehensive glyph coverage.  
Many of the normalized Accuracy scores are equal to or lower than the unnormalized scores. 
This is the reverse of what we expected. We examined the Accuracy reports for a few of the 
12
The class names here are from the Application and/or PDF-Producer property values revealed by Windows XP 
Windows Explorer via right clicking each PDF and selecting Properties (from the context menu). 
C# WPF Viewer: Load, View, Convert, Annotate and Edit PDF
Highlight PDF text in preview. • Add text to PDF document. • Insert text box to PDF file. • Draw markups to PDF document. PDF Protection.
how to enter text in pdf file; add editable text box to pdf
C# PDF Sticky Note Library: add, delete, update PDF note in C#.net
Allow users to add comments online in ASPX webpage. Able to change font size in PDF comment box. which bring users quick and efficient working with PDF Document.
how to add text boxes to pdf; adding text to a pdf in acrobat
13 
language and method combinations with the largest normalized and unnormalized score 
differences. Although most of the errors are substitution errors, the reports for the normalized 
files show an inordinately high count of deletion errors. According to the Unicode standard, there 
are many single canonical characters that are Unicode canonically equivalent to double canonical 
characters. Although, technically, these are not errors, such single characters in the hypothesis 
and double characters in the reference would result in a high count of deletion errors. For 
example, each Acrobat Distiller/PScript5.dll unnormalized hypothesis included ALEF 
MADDAH (
آ
U+0622), whereas each corresponding normalized hypothesis included its Unicode 
canonical equivalent: ARABIC LETTER ALEF and ARABIC MADDAH ABOVE (
ا
U+0627 
and  
◌ٓ
U+0653). This resulted in additional reported deletion errors for the normalized 
hypotheses: 6 for Arabic (a 0.52% Accuracy difference), and 5 for Persian (a 0.64% Accuracy 
difference). 
Each PDFMaker normalized score was identical to its unnormalized score. Each Acrobat 
Distiller/PScript5.dll normalized score was identical to its unnormalized score, except in the case 
noted above.
13
Comparably high Acrobat Distiller/PScript5.dll and PDFMaker scores do not necessarily 
indicate that these are good PDF generation classes from the perspective of human language 
technology. At best there was a 4% to 6% character error rate. Such error rates may correspond 
to an even higher percentage of word/token errors. That degree of word/token error rate is 
problematic for human language technology applications. Only an analysis of specific errors 
would tell the complete story. So, our data analysis turned to correlating specific character errors 
shown in the UNLV reports with the PDF code in actual files. 
3.3. Results: Acrobat Distiller/PScript5.dll PDF Generation Class Errors 
We first address the Acrobat Distiller/PScript5.dll PDF generation class. Table 5 shows the 
specific errors. The first column provides the error description. The next column shows the error 
type: Character or Entity. Each error labeled Character error type is an insertion, substitution, 
and/or deletion of a specific Unicode character. The subsequent two columns list the number of 
times the character error occurred in a normalized Arabic hypothesis and normalized Persian 
hypothesis. Some frequencies are accompanied by the number of tokens affected. We observed 
errors with alphabetic characters, numeric characters, spacing characters, and a symbol. Most 
character errors are footnoted with an asterisk to indicate that the count represents all 
occurrences of the reference character. We use multiple rows to describe the total set of space 
insertion errors (14 for Arabic; 13 for Persian). 
Each error listed as an Entity error type reflects a mishandling of either a date or measurement 
entity. These were due to one or more character errors, or a reversal of the character order. We 
observed a reversal in the order of the slash delimited date in the Arabic hypotheses, but the 
hyphen delimited date, and the Persian storage order YYYY/MM/DD date, were handled 
correctly in all cases. 
The final column reports whether or not the error appears in the PDF Language code of the PDF 
files. 
13
Identical sets of scores also indicated identical files. 
C# HTML5 PDF Viewer SDK to annotate PDF document online in C#.NET
Name. Description. 1. Add sticky note. Click to add a sticky note to PDF document. 4. Strikethrough text. Click to strikethrough text on PDF page. 6. Add text box
add text to pdf without acrobat; add text to pdf document in preview
VB.NET PDF - Annotate PDF with WPF PDF Viewer for VB.NET
Line color. Select the line color when drawing annotations on PDF document. 15. Description. 17. Text box. Click to add a text box to specific location on PDF page
adding text to a pdf form; how to enter text in pdf form
14 
Table 5. Acrobat Distiller/PScript5.dll PDF generation class errors. 
Error 
Description 
Error  
Type 
Frequency 
in 
Normalize
d Arabic 
Hypothesis 
Frequency 
in 
Normalized 
Persian 
Hypothesis 
Error 
observed 
in PDF 
file 
ARABIC LETTER KAF (
ك
U+0643), where it renders as 
initial form, substituted by ARABIC LETTER ALEF 
(
ا
U+0627) and ARABIC MADDAH ABOVE (  
ٓ◌
U+0653) 
(i.e.,  
ٓ
ا
Alef Maddah) 
Character 
6* 
5* 
Yes 
ARABIC LETTER FARSI YEH (
ی
U+06CC), where 
rendered as initial or medial form, substituted with ARABIC 
LETTER YEH (
ي
U+064A)  
Character 
N/A 
3* 
Yes 
Eastern Arabic-Indic Digits 
٠
(U+06F0), 
١
(U+06F1), 
٢
(U+06F2), 
٣
(U+06F3), 
٧
(U+06F7), 
٨
(U+06F8), and 
٩
(U+06F9), substituted with Arabic-Indic Digits 
٠
(U+0660), 
١
(U+0661), 
٢
(U+0662), 
٣
(U+0663), 
٧
(U+0667), 
٨
(U+0668), and 
٩
(U+0669), respectively 
Character 
N/A 
21* 
Yes 
PERIOD ( .  U+002E) substituted with the ARABIC 
DECIMAL SEPARATOR ( 
٫
U+066B) 
Character 
1* 
N/A 
Yes 
SPACE (U+0020), the token delimiter, substituted with a 
newline (i.e., line break)  
Character 
10 
10 
N/A
14
ZERO WIDTH NON-JOINER (U+200C) deleted and 
collocated with an inserted SPACE 
Character 
2* 
(1 token) 
5* 
(5 tokens) 
Yes 
In a given token ending with ARABIC FATHATAN 
 
ً◌
U+064B), one or more correct characters are each 
followed by an inserted SPACE 
Character 
(4 tokens) 
(1 token) 
No 
In a given token ending with ARABIC HAMZA ABOVE 
 
ٔ
U+0654), one or more correct characters are each 
followed by an inserted SPACE 
Character 
(2 tokens) 
(3 tokens) 
No 
DD/MM/YYYY date entity (storage order) substituted with 
YYYY/MM/DD date (storage order) 
Entity 
N/A 
No 
Measurement entity error due to the PERIOD error 
mentioned above 
Entity 
N/A 
Yes 
Date entity error due to the Eastern Arabic-Indic Digits error 
mentioned above 
Entity 
N/A 
Yes 
Measurement entity error due to the ARABIC LETTER 
FARSI YEH error mentioned above 
Entity 
N/A 
Yes 
* This accounts for all of the occurrences of the reference character as described. 
3.4. Discussion: Acrobat Distiller/PScript5.dll PDF Generation Class Errors 
In this section, we discuss high impact errors, such as the ARABIC LETTER KAF substitutions, 
the ZERO WIDTH NON-JOINER deletions, the date entity errors, and the spurious space 
insertions. However, we begin by discussing the benign errors and the errors of lesser 
significance. 
One benign error is the ARABIC LETTER FARSI YEH substitution, a common, accepted 
substitution for human keyboarding of Persian. As such, it would have to be accommodated in an 
HLT application.  
14
It could be argued that the error was observed in the PDF because the PDF generation method discarded the fact 
that there were no newlines in the original text. 
15 
Other errors would likely cause problems for human language technology applications. Eastern 
Arabic-Indic Digit substitutions are acceptable in Persian, but a PDF generation method should 
consistently substitute all digits in a numeric expression. Rather, we observed consistent 
substitution of only 7 of the 10 digits. These are the seven digits for which Arabic-Indic and 
Eastern Arabic-Indic digits have the same glyph. This may confuse a natural language processing 
application. 
Spaces substituted with newlines would not necessarily affect search engine indexing because 
each token gets individually indexed anyway. However, such spurious newlines break up 
complete sentences; and tools such as machine translation engines, text analytics (e.g., named 
entity extraction, information extraction), and computer-assisted translation tools may be 
counting on newlines to indicate sentence breaks.  
The other insertions, deletions, and substitutions that are listed here are significant errors that 
would confuse most HLT applications—for example, rendering unrecognizable every Arabic 
word that begins with ARABIC LETTER KAF. Each of these character errors causes at least one 
token error, and token errors degrade the performance of most human language technologies 
(machine translation, information extraction, etc.) Character errors also render unreadable 
important entities, such as the dates and measurements included in our test documents. Three of 
the entity errors listed are due to character errors.  
Overall, the deleted ZERO WIDTH NON-JOINERs and substituted digits have a greater impact 
on Persian than Arabic because they are more prevalent in Persian. 
The reversal in the order of the date components is of particular interest because, for many use 
cases, accurate dates are vitally important. Consider the date 01/02/03 after it is changed to 
03/02/01. This latter date is an entirely different day than the former, but might be interpreted by 
a human as an authoritative date. The date in our Arabic document is storage order 
DD/MM/YYYY format; storage order is the important factor here. The date entity text is in the 
PDF, but has been split apart into 5 strings. Still, it is a valid PDF. However, the extractor was 
unable to recover the original date entity in the correct order. This appears to be a specific case in 
which our test configuration would generate an error. 
We were surprised to find that most of the errors were caused by the PDF generation software. 
That is, the errors were introduced at the time the PDF was generated and not at the time the text 
was extracted from the PDF. The PDF generation software caused the ARABIC LETTER KAF 
substitutions, the ARABIC LETTER FARSI YEH substitutions, the Eastern Arabic-Indic Digit 
substitutions, the PERIOD substitutions, and the ZERO WIDTH NON-JOINER deletions. An 
argument could be made that the PDF generation software caused the newline insertions because 
the PDF generation discarded the fact that the original electronic text had no newlines. Due to 
the character errors, the PDF generation software also caused most of the entity errors.  
The text extraction software caused the space insertions in tokens ending with Fathatan and 
Hamza. This appears to be due to the text extractor not properly dealing with a complex 
construction in the PDF Language code. This only occurred where Acrobat Distiller/PScript5.dll 
encoded a specific combination of two text-related operations. 
16 
To understand the PDF Language that caused trouble for the text extraction software, it is 
necessary to first understand a little about the PDF TJ and Tc operators. The TJ operator is a text 
showing operator. It renders a font code string on the page. The Tc operator sets the default 
character spacing added after each glyph is rendered. Normally, as the TJ operator renders each 
character, the current position moves to the right the width of the glyph plus the Tc character 
spacing. But, the TJ operator allows a horizontal kerning value after each font code to affect a 
minute adjustment to the left. An example of kerning is the horizontal adjustment to change Text 
to Text. The latter shows a smaller separation between the T and e. For further information on 
such typographic concepts, we refer the reader elsewhere for overviews of the topic (Bringhurst, 
2004; Lupton, 2010). If the TJ operator specifies no kerning value after a font code, then no 
horizontal adjustment is made.  
An effective PDF text extractor must not only understand the nuances of the TJ and Tc operators, 
it must understand all of the nuances of the PDF Language. In cases involving complex 
positioning of glyphs on the page, the text extractor must apply heuristics in order to determine 
whether such positioning indicates a space or a newline—and how many spaces or newlines 
(Rosenthol, 2010). Where such whitespace is absent from the PDF, the extractor must reverse 
engineer, and generate, the missing electronic text. In this latter case, the term “PDF text 
extractor” is really a misnomer—it is an extractor and generator. 
We now turn to the specific case that confused the text extractor in our tests—causing the 
insertion of spurious spaces. Here we talk about the font codes of the TJ operator as glyphs. In 
this case, the character spacing was large and negative, such that, by default, each glyph would 
render directly on top of the others (i.e., render a glyph, then move left to the beginning of the 
glyph we just rendered—which is the opposite of the typical left-to-right movement). This works 
well to render the diacritic over the final letter of a token, but a large negative kerning value is 
necessary to successively move rightward and render each remaining glyph (i.e., use a negative 
kerning value to move right an entire character width—which is the opposite of the typical 
leftward movement for kerning.)
15
Figure 2 shows a relevant snippet of the PDF code.  
/TT2 1 Tf 
2.2322 0 TD 
0 Tc 
( )Tj 
/TT1 1 Tf 
.2772 0 TD 
-.207 Tc 
[<053903f1>-205.5<03ae>-208.9<03d8>-210.2<03e4>-206.2<03df>-206<038d>]TJ 
Figure 2. PDF code snippet for a token ending in Hamza. 
The cases where Acrobat Distiller/PScript5.dll deleted the ZERO WIDTH NON-JOINER 
characters are similar. We analyzed PDF code snippets in each of these cases, but we could not 
determine whether the inserted space was coded in the PDF or merely an artifact of the extractor. 
However, it was clear that, at the position of each deleted ZERO WIDTH NON-JOINER, the 
PDF generator divided the token into parts and put the parts into two or more text showing 
operators. 
15
In all of these cases, Tc was approximately -.200, and the TJ operator kerning values were approximately -200. 
17 
3.5. Results: PDFMaker PDF Generation Class Errors 
We observed that many of the PDFMaker errors were the same errors that we observed with 
Acrobat Distiller/PScript5.dll: ARABIC LETTER FARSI YEH substitution, Eastern Arabic 
Indic Digit substitution, PERIOD substitution, space substitution, ZERO WIDTH NON-JOINER 
deletion, and the entity errors. We observed spurious space insertions collocated with the ZERO 
WIDTH NON-JOINER deletions (2 for Arabic; 5 for Persian). However, we did not see the 
spurious space insertions in tokens ending with Fathatan or Hamza. 
New for this PDF generation class was the ARABIC HAMZA ABOVE substituted with 
ARABIC LETTER HIGH HAMZA.  
Table 4 shows each error. Again, most character errors are footnoted with an asterisk to indicate 
that the count represents all occurrences. 
Table 4. PDFMaker PDF generation class errors. 
Error  
Description 
Error 
Type 
Frequency 
in 
Normalized 
Arabic 
Hypothesis 
Frequency 
in 
Normalized 
Persian 
Hypothesis 
Error 
observed 
in PDF 
file 
ARABIC HAMZA ABOVE (  
ٔ
U+0654) substituted with 
ARABIC LETTER HIGH HAMZA ( 
ٔ
U+0674 “Kazakh”) 
Character  23* 
12* 
Yes 
ARABIC LETTER FARSI YEH (
ی
U+06CC), where 
rendered as initial or medial form, substituted with ARABIC 
LETTER YEH (
ي
U+064A)  
Character  N/A 
3* 
Yes 
Eastern Arabic-Indic Digits 
٠
(U+06F0), 
١
(U+06F1), 
٢
(U+06F2), 
٣
(U+06F3), 
٧
(U+06F7), 
٨
(U+06F8), and 
٩
(U+06F9), substituted with Arabic-Indic Digits 
٠
(U+0660), 
١
(U+0661), 
٢
(U+0662), 
٣
(U+0663), 
٧
(U+0667), 
٨
(U+0668), and 
٩
(U+0669), respectively 
Character  N/A 
21* 
Yes 
PERIOD ( .  U+002E) substituted with the ARABIC 
DECIMAL SEPARATOR (
٫
U+066B) 
Character  1* 
N/A 
Yes 
SPACE (U+0020), the token delimiter, substituted with a 
newline (i.e., line break) 
Character  10 
10 
N/A
16
ZERO WIDTH NON-JOINER (U+200C) deleted and 
collocated with an inserted space (U+0020) 
Character  2* 
(1 token) 
5* 
(5 tokens) 
Yes 
DD/MM/YYYY date entity (storage order) substituted with 
YYYY/MM/DD date (storage order) 
Entity 
N/A 
No 
Measurement entity error due to the PERIOD error mentioned 
above 
Entity 
N/A 
Yes 
Date entity error due to the Eastern Arabic-Indic Digits error 
mentioned above 
Entity 
N/A 
Yes 
Measurement entity error due to the ARABIC LETTER 
FARSI YEH error mentioned above 
Entity 
N/A 
Yes 
* This accounts for all of the occurrences of the reference character as described. 
16
It could be argued that the error was observed in the PDF because the PDF generation method discarded the fact 
that there were no newlines in the original text. 
Documents you may be interested
Documents you may be interested