tidy up some resharper and github warnings

This commit is contained in:
Eliot Jones 2023-03-17 18:45:23 +01:00
parent bd48bbe536
commit 4876bfbbd4
5 changed files with 290 additions and 290 deletions

View File

@ -10,9 +10,9 @@
using System.Linq;
using System.Xml;
using System.Xml.Serialization;
using UglyToad.PdfPig.DocumentLayoutAnalysis.PageSegmenter;
using UglyToad.PdfPig.DocumentLayoutAnalysis.ReadingOrderDetector;
using UglyToad.PdfPig.Graphics;
using PageSegmenter;
using ReadingOrderDetector;
using Graphics;
using Util;
/// <summary>
@ -51,7 +51,7 @@
this.pageSegmenter = pageSegmenter;
this.readingOrderDetector = readingOrderDetector;
this.scale = scale;
this.indentChar = indent;
indentChar = indent;
}
/// <summary>
@ -129,7 +129,7 @@
private string ToPoints(IEnumerable<PdfPoint> points, double pageWidth, double pageHeight)
{
return string.Join(" ", points.Select(p => PointToString(p, pageWidth, pageHeight, this.scale)));
return string.Join(" ", points.Select(p => PointToString(p, pageWidth, pageHeight, scale)));
}
private string ToPoints(PdfRectangle pdfRectangle, double pageWidth, double pageHeight)
@ -163,7 +163,7 @@
private PageXmlDocument.PageXmlPage ToPageXmlPage(Page page, bool includePaths)
{
var pageXmlPage = new PageXmlDocument.PageXmlPage()
var pageXmlPage = new PageXmlDocument.PageXmlPage
{
ImageFilename = "unknown",
ImageHeight = (int)Math.Round(page.Height * scale),
@ -205,10 +205,14 @@
if (includePaths)
{
var graphicalElements = page.ExperimentalAccess.Paths.Select(p => ToPageXmlLineDrawingRegion(p, page.Width, page.Height));
if (graphicalElements.Count(g => g != null) > 0)
foreach (var path in page.ExperimentalAccess.Paths)
{
regions.AddRange(graphicalElements.Where(g => g != null));
var graphicalElement = ToPageXmlLineDrawingRegion(path, page.Width, page.Height);
if (graphicalElement != null)
{
regions.Add(graphicalElement);
}
}
}

View File

@ -12,194 +12,194 @@
/// Code values are already converted to base 10 prior to compile. Original octal values in comments on each line.
/// </summary>
private static readonly (int, string)[] EncodingTable = {
( 32, "space"), // for char ' ' using 32 as base10 equivilant (for C# source). Spec has 040 octal. ( 32,"space") <=> (040, "space"),
( 33, "a1"), // for char '!' using 33 as base10 equivilant (for C# source). Spec has 041 octal. ( 33,"a1") <=> (041, "a1") ,
( 34, "a2"), // for char '"' using 34 as base10 equivilant (for C# source). Spec has 042 octal. ( 34,"a2") <=> (042, "a2") ,
( 35, "a202"), // for char '#' using 35 as base10 equivilant (for C# source). Spec has 043 octal. ( 35,"a202") <=> (043, "a202") ,
( 36, "a3"), // for char '$' using 36 as base10 equivilant (for C# source). Spec has 044 octal. ( 36,"a3") <=> (044, "a3") ,
( 37, "a4"), // for char '%' using 37 as base10 equivilant (for C# source). Spec has 045 octal. ( 37,"a4") <=> (045, "a4") ,
( 38, "a5"), // for char '&' using 38 as base10 equivilant (for C# source). Spec has 046 octal. ( 38,"a5") <=> (046, "a5") ,
( 39, "a119"), // for char ''' using 39 as base10 equivilant (for C# source). Spec has 047 octal. ( 39,"a119") <=> (047, "a119") ,
( 40, "a118"), // for char '(' using 40 as base10 equivilant (for C# source). Spec has 050 octal. ( 40,"a118") <=> (050, "a118") ,
( 41, "a117"), // for char ')' using 41 as base10 equivilant (for C# source). Spec has 051 octal. ( 41,"a117") <=> (051, "a117") ,
( 42, "a11"), // for char '*' using 42 as base10 equivilant (for C# source). Spec has 052 octal. ( 42,"a11") <=> (052, "a11") ,
( 43, "a12"), // for char '+' using 43 as base10 equivilant (for C# source). Spec has 053 octal. ( 43,"a12") <=> (053, "a12") ,
( 44, "a13"), // for char ',' using 44 as base10 equivilant (for C# source). Spec has 054 octal. ( 44,"a13") <=> (054, "a13") ,
( 45, "a14"), // for char '-' using 45 as base10 equivilant (for C# source). Spec has 055 octal. ( 45,"a14") <=> (055, "a14") ,
( 46, "a15"), // for char '.' using 46 as base10 equivilant (for C# source). Spec has 056 octal. ( 46,"a15") <=> (056, "a15") ,
( 47, "a16"), // for char '/' using 47 as base10 equivilant (for C# source). Spec has 057 octal. ( 47,"a16") <=> (057, "a16") ,
( 48, "a105"), // for char '0' using 48 as base10 equivilant (for C# source). Spec has 060 octal. ( 48,"a105") <=> (060, "a105") ,
( 49, "a17"), // for char '1' using 49 as base10 equivilant (for C# source). Spec has 061 octal. ( 49,"a17") <=> (061, "a17") ,
( 50, "a18"), // for char '2' using 50 as base10 equivilant (for C# source). Spec has 062 octal. ( 50,"a18") <=> (062, "a18") ,
( 51, "a19"), // for char '3' using 51 as base10 equivilant (for C# source). Spec has 063 octal. ( 51,"a19") <=> (063, "a19") ,
( 52, "a20"), // for char '4' using 52 as base10 equivilant (for C# source). Spec has 064 octal. ( 52,"a20") <=> (064, "a20") ,
( 53, "a21"), // for char '5' using 53 as base10 equivilant (for C# source). Spec has 065 octal. ( 53,"a21") <=> (065, "a21") ,
( 54, "a22"), // for char '6' using 54 as base10 equivilant (for C# source). Spec has 066 octal. ( 54,"a22") <=> (066, "a22") ,
( 55, "a23"), // for char '7' using 55 as base10 equivilant (for C# source). Spec has 067 octal. ( 55,"a23") <=> (067, "a23") ,
( 56, "a24"), // for char '8' using 56 as base10 equivilant (for C# source). Spec has 070 octal. ( 56,"a24") <=> (070, "a24") ,
( 57, "a25"), // for char '9' using 57 as base10 equivilant (for C# source). Spec has 071 octal. ( 57,"a25") <=> (071, "a25") ,
( 58, "a26"), // for char ':' using 58 as base10 equivilant (for C# source). Spec has 072 octal. ( 58,"a26") <=> (072, "a26") ,
( 59, "a27"), // for char ';' using 59 as base10 equivilant (for C# source). Spec has 073 octal. ( 59,"a27") <=> (073, "a27") ,
( 60, "a28"), // for char '<' using 60 as base10 equivilant (for C# source). Spec has 074 octal. ( 60,"a28") <=> (074, "a28") ,
( 61, "a6"), // for char '=' using 61 as base10 equivilant (for C# source). Spec has 075 octal. ( 61,"a6") <=> (075, "a6") ,
( 62, "a7"), // for char '>' using 62 as base10 equivilant (for C# source). Spec has 076 octal. ( 62,"a7") <=> (076, "a7") ,
( 63, "a8"), // for char '?' using 63 as base10 equivilant (for C# source). Spec has 077 octal. ( 63,"a8") <=> (077, "a8") ,
( 64, "a9"), // for char '@' using 64 as base10 equivilant (for C# source). Spec has 0100 octal. ( 64,"a9") <=> (0100, "a9") ,
( 65, "a10"), // for char 'A' using 65 as base10 equivilant (for C# source). Spec has 0101 octal. ( 65,"a10") <=> (0101, "a10") ,
( 66, "a29"), // for char 'B' using 66 as base10 equivilant (for C# source). Spec has 0102 octal. ( 66,"a29") <=> (0102, "a29") ,
( 67, "a30"), // for char 'C' using 67 as base10 equivilant (for C# source). Spec has 0103 octal. ( 67,"a30") <=> (0103, "a30") ,
( 68, "a31"), // for char 'D' using 68 as base10 equivilant (for C# source). Spec has 0104 octal. ( 68,"a31") <=> (0104, "a31") ,
( 69, "a32"), // for char 'E' using 69 as base10 equivilant (for C# source). Spec has 0105 octal. ( 69,"a32") <=> (0105, "a32") ,
( 70, "a33"), // for char 'F' using 70 as base10 equivilant (for C# source). Spec has 0106 octal. ( 70,"a33") <=> (0106, "a33") ,
( 71, "a34"), // for char 'G' using 71 as base10 equivilant (for C# source). Spec has 0107 octal. ( 71,"a34") <=> (0107, "a34") ,
( 72, "a35"), // for char 'H' using 72 as base10 equivilant (for C# source). Spec has 0110 octal. ( 72,"a35") <=> (0110, "a35") ,
( 73, "a36"), // for char 'I' using 73 as base10 equivilant (for C# source). Spec has 0111 octal. ( 73,"a36") <=> (0111, "a36") ,
( 74, "a37"), // for char 'J' using 74 as base10 equivilant (for C# source). Spec has 0112 octal. ( 74,"a37") <=> (0112, "a37") ,
( 75, "a38"), // for char 'K' using 75 as base10 equivilant (for C# source). Spec has 0113 octal. ( 75,"a38") <=> (0113, "a38") ,
( 76, "a39"), // for char 'L' using 76 as base10 equivilant (for C# source). Spec has 0114 octal. ( 76,"a39") <=> (0114, "a39") ,
( 77, "a40"), // for char 'M' using 77 as base10 equivilant (for C# source). Spec has 0115 octal. ( 77,"a40") <=> (0115, "a40") ,
( 78, "a41"), // for char 'N' using 78 as base10 equivilant (for C# source). Spec has 0116 octal. ( 78,"a41") <=> (0116, "a41") ,
( 79, "a42"), // for char 'O' using 79 as base10 equivilant (for C# source). Spec has 0117 octal. ( 79,"a42") <=> (0117, "a42") ,
( 80, "a43"), // for char 'P' using 80 as base10 equivilant (for C# source). Spec has 0120 octal. ( 80,"a43") <=> (0120, "a43") ,
( 81, "a44"), // for char 'Q' using 81 as base10 equivilant (for C# source). Spec has 0121 octal. ( 81,"a44") <=> (0121, "a44") ,
( 82, "a45"), // for char 'R' using 82 as base10 equivilant (for C# source). Spec has 0122 octal. ( 82,"a45") <=> (0122, "a45") ,
( 83, "a46"), // for char 'S' using 83 as base10 equivilant (for C# source). Spec has 0123 octal. ( 83,"a46") <=> (0123, "a46") ,
( 84, "a47"), // for char 'T' using 84 as base10 equivilant (for C# source). Spec has 0124 octal. ( 84,"a47") <=> (0124, "a47") ,
( 85, "a48"), // for char 'U' using 85 as base10 equivilant (for C# source). Spec has 0125 octal. ( 85,"a48") <=> (0125, "a48") ,
( 86, "a49"), // for char 'V' using 86 as base10 equivilant (for C# source). Spec has 0126 octal. ( 86,"a49") <=> (0126, "a49") ,
( 87, "a50"), // for char 'W' using 87 as base10 equivilant (for C# source). Spec has 0127 octal. ( 87,"a50") <=> (0127, "a50") ,
( 88, "a51"), // for char 'X' using 88 as base10 equivilant (for C# source). Spec has 0130 octal. ( 88,"a51") <=> (0130, "a51") ,
( 89, "a52"), // for char 'Y' using 89 as base10 equivilant (for C# source). Spec has 0131 octal. ( 89,"a52") <=> (0131, "a52") ,
( 90, "a53"), // for char 'Z' using 90 as base10 equivilant (for C# source). Spec has 0132 octal. ( 90,"a53") <=> (0132, "a53") ,
( 91, "a54"), // for char '[' using 91 as base10 equivilant (for C# source). Spec has 0133 octal. ( 91,"a54") <=> (0133, "a54") ,
( 92, "a55"), // for char '\' using 92 as base10 equivilant (for C# source). Spec has 0134 octal. ( 92,"a55") <=> (0134, "a55") ,
( 93, "a56"), // for char ']' using 93 as base10 equivilant (for C# source). Spec has 0135 octal. ( 93,"a56") <=> (0135, "a56") ,
( 94, "a57"), // for char '^' using 94 as base10 equivilant (for C# source). Spec has 0136 octal. ( 94,"a57") <=> (0136, "a57") ,
( 95, "a58"), // for char '_' using 95 as base10 equivilant (for C# source). Spec has 0137 octal. ( 95,"a58") <=> (0137, "a58") ,
( 96, "a59"), // for char '`' using 96 as base10 equivilant (for C# source). Spec has 0140 octal. ( 96,"a59") <=> (0140, "a59") ,
( 97, "a60"), // for char 'a' using 97 as base10 equivilant (for C# source). Spec has 0141 octal. ( 97,"a60") <=> (0141, "a60") ,
( 98, "a61"), // for char 'b' using 98 as base10 equivilant (for C# source). Spec has 0142 octal. ( 98,"a61") <=> (0142, "a61") ,
( 99, "a62"), // for char 'c' using 99 as base10 equivilant (for C# source). Spec has 0143 octal. ( 99,"a62") <=> (0143, "a62") ,
(100, "a63"), // for char 'd' using 100 as base10 equivilant (for C# source). Spec has 0144 octal. (100,"a63") <=> (0144, "a63") ,
(101, "a64"), // for char 'e' using 101 as base10 equivilant (for C# source). Spec has 0145 octal. (101,"a64") <=> (0145, "a64") ,
(102, "a65"), // for char 'f' using 102 as base10 equivilant (for C# source). Spec has 0146 octal. (102,"a65") <=> (0146, "a65") ,
(103, "a66"), // for char 'g' using 103 as base10 equivilant (for C# source). Spec has 0147 octal. (103,"a66") <=> (0147, "a66") ,
(104, "a67"), // for char 'h' using 104 as base10 equivilant (for C# source). Spec has 0150 octal. (104,"a67") <=> (0150, "a67") ,
(105, "a68"), // for char 'i' using 105 as base10 equivilant (for C# source). Spec has 0151 octal. (105,"a68") <=> (0151, "a68") ,
(106, "a69"), // for char 'j' using 106 as base10 equivilant (for C# source). Spec has 0152 octal. (106,"a69") <=> (0152, "a69") ,
(107, "a70"), // for char 'k' using 107 as base10 equivilant (for C# source). Spec has 0153 octal. (107,"a70") <=> (0153, "a70") ,
(108, "a71"), // for char 'l' using 108 as base10 equivilant (for C# source). Spec has 0154 octal. (108,"a71") <=> (0154, "a71") ,
(109, "a72"), // for char 'm' using 109 as base10 equivilant (for C# source). Spec has 0155 octal. (109,"a72") <=> (0155, "a72") ,
(110, "a73"), // for char 'n' using 110 as base10 equivilant (for C# source). Spec has 0156 octal. (110,"a73") <=> (0156, "a73") ,
(111, "a74"), // for char 'o' using 111 as base10 equivilant (for C# source). Spec has 0157 octal. (111,"a74") <=> (0157, "a74") ,
(112, "a203"), // for char 'p' using 112 as base10 equivilant (for C# source). Spec has 0160 octal. (112,"a203") <=> (0160, "a203"),
(113, "a75"), // for char 'q' using 113 as base10 equivilant (for C# source). Spec has 0161 octal. (113,"a75") <=> (0161, "a75") ,
(114, "a204"), // for char 'r' using 114 as base10 equivilant (for C# source). Spec has 0162 octal. (114,"a204") <=> (0162, "a204"),
(115, "a76"), // for char 's' using 115 as base10 equivilant (for C# source). Spec has 0163 octal. (115,"a76") <=> (0163, "a76") ,
(116, "a77"), // for char 't' using 116 as base10 equivilant (for C# source). Spec has 0164 octal. (116,"a77") <=> (0164, "a77") ,
(117, "a78"), // for char 'u' using 117 as base10 equivilant (for C# source). Spec has 0165 octal. (117,"a78") <=> (0165, "a78") ,
(118, "a79"), // for char 'v' using 118 as base10 equivilant (for C# source). Spec has 0166 octal. (118,"a79") <=> (0166, "a79") ,
(119, "a81"), // for char 'w' using 119 as base10 equivilant (for C# source). Spec has 0167 octal. (119,"a81") <=> (0167, "a81") ,
(120, "a82"), // for char 'x' using 120 as base10 equivilant (for C# source). Spec has 0170 octal. (120,"a82") <=> (0170, "a82") ,
(121, "a83"), // for char 'y' using 121 as base10 equivilant (for C# source). Spec has 0171 octal. (121,"a83") <=> (0171, "a83") ,
(122, "a84"), // for char 'z' using 122 as base10 equivilant (for C# source). Spec has 0172 octal. (122,"a84") <=> (0172, "a84") ,
(123, "a97"), // for char '{' using 123 as base10 equivilant (for C# source). Spec has 0173 octal. (123,"a97") <=> (0173, "a97") ,
(124, "a98"), // for char '|' using 124 as base10 equivilant (for C# source). Spec has 0174 octal. (124,"a98") <=> (0174, "a98") ,
(125, "a99"), // for char '}' using 125 as base10 equivilant (for C# source). Spec has 0175 octal. (125,"a99") <=> (0175, "a99") ,
(126, "a100"), // for char '~' using 126 as base10 equivilant (for C# source). Spec has 0176 octal. (126,"a100") <=> (0176, "a100"),
(161, "a101"), // for char '¡' using 161 as base10 equivilant (for C# source). Spec has 0241 octal. (161,"a101") <=> (0241, "a101"),
(162, "a102"), // for char '¢' using 162 as base10 equivilant (for C# source). Spec has 0242 octal. (162,"a102") <=> (0242, "a102"),
(163, "a103"), // for char '£' using 163 as base10 equivilant (for C# source). Spec has 0243 octal. (163,"a103") <=> (0243, "a103"),
(164, "a104"), // for char '¤' using 164 as base10 equivilant (for C# source). Spec has 0244 octal. (164,"a104") <=> (0244, "a104"),
(165, "a106"), // for char '¥' using 165 as base10 equivilant (for C# source). Spec has 0245 octal. (165,"a106") <=> (0245, "a106"),
(166, "a107"), // for char '¦' using 166 as base10 equivilant (for C# source). Spec has 0246 octal. (166,"a107") <=> (0246, "a107"),
(167, "a108"), // for char '§' using 167 as base10 equivilant (for C# source). Spec has 0247 octal. (167,"a108") <=> (0247, "a108"),
(168, "a112"), // for char '¨' using 168 as base10 equivilant (for C# source). Spec has 0250 octal. (168,"a112") <=> (0250, "a112"),
(169, "a111"), // for char '©' using 169 as base10 equivilant (for C# source). Spec has 0251 octal. (169,"a111") <=> (0251, "a111"),
(170, "a110"), // for char 'ª' using 170 as base10 equivilant (for C# source). Spec has 0252 octal. (170,"a110") <=> (0252, "a110"),
(171, "a109"), // for char '«' using 171 as base10 equivilant (for C# source). Spec has 0253 octal. (171,"a109") <=> (0253, "a109"),
(172, "a120"), // for char '¬' using 172 as base10 equivilant (for C# source). Spec has 0254 octal. (172,"a120") <=> (0254, "a120"),
(173, "a121"), // using 173 as base10 equivilant (for C# source). Spec has 0255 octal. (173,"a121") <=> (0255, "a121"),
(174, "a122"), // for char '®' using 174 as base10 equivilant (for C# source). Spec has 0256 octal. (174,"a122") <=> (0256, "a122"),
(175, "a123"), // for char '¯' using 175 as base10 equivilant (for C# source). Spec has 0257 octal. (175,"a123") <=> (0257, "a123"),
(176, "a124"), // for char '°' using 176 as base10 equivilant (for C# source). Spec has 0260 octal. (176,"a124") <=> (0260, "a124"),
(177, "a125"), // for char '±' using 177 as base10 equivilant (for C# source). Spec has 0261 octal. (177,"a125") <=> (0261, "a125"),
(178, "a126"), // for char '²' using 178 as base10 equivilant (for C# source). Spec has 0262 octal. (178,"a126") <=> (0262, "a126"),
(179, "a127"), // for char '³' using 179 as base10 equivilant (for C# source). Spec has 0263 octal. (179,"a127") <=> (0263, "a127"),
(180, "a128"), // for char '´' using 180 as base10 equivilant (for C# source). Spec has 0264 octal. (180,"a128") <=> (0264, "a128"),
(181, "a129"), // for char 'µ' using 181 as base10 equivilant (for C# source). Spec has 0265 octal. (181,"a129") <=> (0265, "a129"),
(182, "a130"), // for char '¶' using 182 as base10 equivilant (for C# source). Spec has 0266 octal. (182,"a130") <=> (0266, "a130"),
(183, "a131"), // for char '·' using 183 as base10 equivilant (for C# source). Spec has 0267 octal. (183,"a131") <=> (0267, "a131"),
(184, "a132"), // for char '¸' using 184 as base10 equivilant (for C# source). Spec has 0270 octal. (184,"a132") <=> (0270, "a132"),
(185, "a133"), // for char '¹' using 185 as base10 equivilant (for C# source). Spec has 0271 octal. (185,"a133") <=> (0271, "a133"),
(186, "a134"), // for char 'º' using 186 as base10 equivilant (for C# source). Spec has 0272 octal. (186,"a134") <=> (0272, "a134"),
(187, "a135"), // for char '»' using 187 as base10 equivilant (for C# source). Spec has 0273 octal. (187,"a135") <=> (0273, "a135"),
(188, "a136"), // for char '¼' using 188 as base10 equivilant (for C# source). Spec has 0274 octal. (188,"a136") <=> (0274, "a136"),
(189, "a137"), // for char '½' using 189 as base10 equivilant (for C# source). Spec has 0275 octal. (189,"a137") <=> (0275, "a137"),
(190, "a138"), // for char '¾' using 190 as base10 equivilant (for C# source). Spec has 0276 octal. (190,"a138") <=> (0276, "a138"),
(191, "a139"), // for char '¿' using 191 as base10 equivilant (for C# source). Spec has 0277 octal. (191,"a139") <=> (0277, "a139"),
(192, "a140"), // for char 'À' using 192 as base10 equivilant (for C# source). Spec has 0300 octal. (192,"a140") <=> (0300, "a140"),
(193, "a141"), // for char 'Á' using 193 as base10 equivilant (for C# source). Spec has 0301 octal. (193,"a141") <=> (0301, "a141"),
(194, "a142"), // for char 'Â' using 194 as base10 equivilant (for C# source). Spec has 0302 octal. (194,"a142") <=> (0302, "a142"),
(195, "a143"), // for char 'Ã' using 195 as base10 equivilant (for C# source). Spec has 0303 octal. (195,"a143") <=> (0303, "a143"),
(196, "a144"), // for char 'Ä' using 196 as base10 equivilant (for C# source). Spec has 0304 octal. (196,"a144") <=> (0304, "a144"),
(197, "a145"), // for char 'Å' using 197 as base10 equivilant (for C# source). Spec has 0305 octal. (197,"a145") <=> (0305, "a145"),
(198, "a146"), // for char 'Æ' using 198 as base10 equivilant (for C# source). Spec has 0306 octal. (198,"a146") <=> (0306, "a146"),
(199, "a147"), // for char 'Ç' using 199 as base10 equivilant (for C# source). Spec has 0307 octal. (199,"a147") <=> (0307, "a147"),
(200, "a148"), // for char 'È' using 200 as base10 equivilant (for C# source). Spec has 0310 octal. (200,"a148") <=> (0310, "a148"),
(201, "a149"), // for char 'É' using 201 as base10 equivilant (for C# source). Spec has 0311 octal. (201,"a149") <=> (0311, "a149"),
(202, "a150"), // for char 'Ê' using 202 as base10 equivilant (for C# source). Spec has 0312 octal. (202,"a150") <=> (0312, "a150"),
(203, "a151"), // for char 'Ë' using 203 as base10 equivilant (for C# source). Spec has 0313 octal. (203,"a151") <=> (0313, "a151"),
(204, "a152"), // for char 'Ì' using 204 as base10 equivilant (for C# source). Spec has 0314 octal. (204,"a152") <=> (0314, "a152"),
(205, "a153"), // for char 'Í' using 205 as base10 equivilant (for C# source). Spec has 0315 octal. (205,"a153") <=> (0315, "a153"),
(206, "a154"), // for char 'Î' using 206 as base10 equivilant (for C# source). Spec has 0316 octal. (206,"a154") <=> (0316, "a154"),
(207, "a155"), // for char 'Ï' using 207 as base10 equivilant (for C# source). Spec has 0317 octal. (207,"a155") <=> (0317, "a155"),
(208, "a156"), // for char 'Ð' using 208 as base10 equivilant (for C# source). Spec has 0320 octal. (208,"a156") <=> (0320, "a156"),
(209, "a157"), // for char 'Ñ' using 209 as base10 equivilant (for C# source). Spec has 0321 octal. (209,"a157") <=> (0321, "a157"),
(210, "a158"), // for char 'Ò' using 210 as base10 equivilant (for C# source). Spec has 0322 octal. (210,"a158") <=> (0322, "a158"),
(211, "a159"), // for char 'Ó' using 211 as base10 equivilant (for C# source). Spec has 0323 octal. (211,"a159") <=> (0323, "a159"),
(212, "a160"), // for char 'Ô' using 212 as base10 equivilant (for C# source). Spec has 0324 octal. (212,"a160") <=> (0324, "a160"),
(213, "a161"), // for char 'Õ' using 213 as base10 equivilant (for C# source). Spec has 0325 octal. (213,"a161") <=> (0325, "a161"),
(214, "a163"), // for char 'Ö' using 214 as base10 equivilant (for C# source). Spec has 0326 octal. (214,"a163") <=> (0326, "a163"),
(215, "a164"), // for char '×' using 215 as base10 equivilant (for C# source). Spec has 0327 octal. (215,"a164") <=> (0327, "a164"),
(216, "a196"), // for char 'Ø' using 216 as base10 equivilant (for C# source). Spec has 0330 octal. (216,"a196") <=> (0330, "a196"),
(217, "a165"), // for char 'Ù' using 217 as base10 equivilant (for C# source). Spec has 0331 octal. (217,"a165") <=> (0331, "a165"),
(218, "a192"), // for char 'Ú' using 218 as base10 equivilant (for C# source). Spec has 0332 octal. (218,"a192") <=> (0332, "a192"),
(219, "a166"), // for char 'Û' using 219 as base10 equivilant (for C# source). Spec has 0333 octal. (219,"a166") <=> (0333, "a166"),
(220, "a167"), // for char 'Ü' using 220 as base10 equivilant (for C# source). Spec has 0334 octal. (220,"a167") <=> (0334, "a167"),
(221, "a168"), // for char 'Ý' using 221 as base10 equivilant (for C# source). Spec has 0335 octal. (221,"a168") <=> (0335, "a168"),
(222, "a169"), // for char 'Þ' using 222 as base10 equivilant (for C# source). Spec has 0336 octal. (222,"a169") <=> (0336, "a169"),
(223, "a170"), // for char 'ß' using 223 as base10 equivilant (for C# source). Spec has 0337 octal. (223,"a170") <=> (0337, "a170"),
(224, "a171"), // for char 'à' using 224 as base10 equivilant (for C# source). Spec has 0340 octal. (224,"a171") <=> (0340, "a171"),
(225, "a172"), // for char 'á' using 225 as base10 equivilant (for C# source). Spec has 0341 octal. (225,"a172") <=> (0341, "a172"),
(226, "a173"), // for char 'â' using 226 as base10 equivilant (for C# source). Spec has 0342 octal. (226,"a173") <=> (0342, "a173"),
(227, "a162"), // for char 'ã' using 227 as base10 equivilant (for C# source). Spec has 0343 octal. (227,"a162") <=> (0343, "a162"),
(228, "a174"), // for char 'ä' using 228 as base10 equivilant (for C# source). Spec has 0344 octal. (228,"a174") <=> (0344, "a174"),
(229, "a175"), // for char 'å' using 229 as base10 equivilant (for C# source). Spec has 0345 octal. (229,"a175") <=> (0345, "a175"),
(230, "a176"), // for char 'æ' using 230 as base10 equivilant (for C# source). Spec has 0346 octal. (230,"a176") <=> (0346, "a176"),
(231, "a177"), // for char 'ç' using 231 as base10 equivilant (for C# source). Spec has 0347 octal. (231,"a177") <=> (0347, "a177"),
(232, "a178"), // for char 'è' using 232 as base10 equivilant (for C# source). Spec has 0350 octal. (232,"a178") <=> (0350, "a178"),
(233, "a179"), // for char 'é' using 233 as base10 equivilant (for C# source). Spec has 0351 octal. (233,"a179") <=> (0351, "a179"),
(234, "a193"), // for char 'ê' using 234 as base10 equivilant (for C# source). Spec has 0352 octal. (234,"a193") <=> (0352, "a193"),
(235, "a180"), // for char 'ë' using 235 as base10 equivilant (for C# source). Spec has 0353 octal. (235,"a180") <=> (0353, "a180"),
(236, "a199"), // for char 'ì' using 236 as base10 equivilant (for C# source). Spec has 0354 octal. (236,"a199") <=> (0354, "a199"),
(237, "a181"), // for char 'í' using 237 as base10 equivilant (for C# source). Spec has 0355 octal. (237,"a181") <=> (0355, "a181"),
(238, "a200"), // for char 'î' using 238 as base10 equivilant (for C# source). Spec has 0356 octal. (238,"a200") <=> (0356, "a200"),
(239, "a182"), // for char 'ï' using 239 as base10 equivilant (for C# source). Spec has 0357 octal. (239,"a182") <=> (0357, "a182"),
(241, "a201"), // for char 'ñ' using 241 as base10 equivilant (for C# source). Spec has 0361 octal. (241,"a201") <=> (0361, "a201"),
(242, "a183"), // for char 'ò' using 242 as base10 equivilant (for C# source). Spec has 0362 octal. (242,"a183") <=> (0362, "a183"),
(243, "a184"), // for char 'ó' using 243 as base10 equivilant (for C# source). Spec has 0363 octal. (243,"a184") <=> (0363, "a184"),
(244, "a197"), // for char 'ô' using 244 as base10 equivilant (for C# source). Spec has 0364 octal. (244,"a197") <=> (0364, "a197"),
(245, "a185"), // for char 'õ' using 245 as base10 equivilant (for C# source). Spec has 0365 octal. (245,"a185") <=> (0365, "a185"),
(246, "a194"), // for char 'ö' using 246 as base10 equivilant (for C# source). Spec has 0366 octal. (246,"a194") <=> (0366, "a194"),
(247, "a198"), // for char '÷' using 247 as base10 equivilant (for C# source). Spec has 0367 octal. (247,"a198") <=> (0367, "a198"),
(248, "a186"), // for char 'ø' using 248 as base10 equivilant (for C# source). Spec has 0370 octal. (248,"a186") <=> (0370, "a186"),
(249, "a195"), // for char 'ù' using 249 as base10 equivilant (for C# source). Spec has 0371 octal. (249,"a195") <=> (0371, "a195"),
(250, "a187"), // for char 'ú' using 250 as base10 equivilant (for C# source). Spec has 0372 octal. (250,"a187") <=> (0372, "a187"),
(251, "a188"), // for char 'û' using 251 as base10 equivilant (for C# source). Spec has 0373 octal. (251,"a188") <=> (0373, "a188"),
(252, "a189"), // for char 'ü' using 252 as base10 equivilant (for C# source). Spec has 0374 octal. (252,"a189") <=> (0374, "a189"),
(253, "a190"), // for char 'ý' using 253 as base10 equivilant (for C# source). Spec has 0375 octal. (253,"a190") <=> (0375, "a190"),
(254, "a191") // for char 'þ' using 254 as base10 equivilant (for C# source). Spec has 0376 octal. (254,"a191") <=> (0376, "a191")
( 32, "space"), // for char ' ' using 32 as base10 equivalent (for C# source). Spec has 040 octal. ( 32,"space") <=> (040, "space"),
( 33, "a1"), // for char '!' using 33 as base10 equivalent (for C# source). Spec has 041 octal. ( 33,"a1") <=> (041, "a1") ,
( 34, "a2"), // for char '"' using 34 as base10 equivalent (for C# source). Spec has 042 octal. ( 34,"a2") <=> (042, "a2") ,
( 35, "a202"), // for char '#' using 35 as base10 equivalent (for C# source). Spec has 043 octal. ( 35,"a202") <=> (043, "a202") ,
( 36, "a3"), // for char '$' using 36 as base10 equivalent (for C# source). Spec has 044 octal. ( 36,"a3") <=> (044, "a3") ,
( 37, "a4"), // for char '%' using 37 as base10 equivalent (for C# source). Spec has 045 octal. ( 37,"a4") <=> (045, "a4") ,
( 38, "a5"), // for char '&' using 38 as base10 equivalent (for C# source). Spec has 046 octal. ( 38,"a5") <=> (046, "a5") ,
( 39, "a119"), // for char ''' using 39 as base10 equivalent (for C# source). Spec has 047 octal. ( 39,"a119") <=> (047, "a119") ,
( 40, "a118"), // for char '(' using 40 as base10 equivalent (for C# source). Spec has 050 octal. ( 40,"a118") <=> (050, "a118") ,
( 41, "a117"), // for char ')' using 41 as base10 equivalent (for C# source). Spec has 051 octal. ( 41,"a117") <=> (051, "a117") ,
( 42, "a11"), // for char '*' using 42 as base10 equivalent (for C# source). Spec has 052 octal. ( 42,"a11") <=> (052, "a11") ,
( 43, "a12"), // for char '+' using 43 as base10 equivalent (for C# source). Spec has 053 octal. ( 43,"a12") <=> (053, "a12") ,
( 44, "a13"), // for char ',' using 44 as base10 equivalent (for C# source). Spec has 054 octal. ( 44,"a13") <=> (054, "a13") ,
( 45, "a14"), // for char '-' using 45 as base10 equivalent (for C# source). Spec has 055 octal. ( 45,"a14") <=> (055, "a14") ,
( 46, "a15"), // for char '.' using 46 as base10 equivalent (for C# source). Spec has 056 octal. ( 46,"a15") <=> (056, "a15") ,
( 47, "a16"), // for char '/' using 47 as base10 equivalent (for C# source). Spec has 057 octal. ( 47,"a16") <=> (057, "a16") ,
( 48, "a105"), // for char '0' using 48 as base10 equivalent (for C# source). Spec has 060 octal. ( 48,"a105") <=> (060, "a105") ,
( 49, "a17"), // for char '1' using 49 as base10 equivalent (for C# source). Spec has 061 octal. ( 49,"a17") <=> (061, "a17") ,
( 50, "a18"), // for char '2' using 50 as base10 equivalent (for C# source). Spec has 062 octal. ( 50,"a18") <=> (062, "a18") ,
( 51, "a19"), // for char '3' using 51 as base10 equivalent (for C# source). Spec has 063 octal. ( 51,"a19") <=> (063, "a19") ,
( 52, "a20"), // for char '4' using 52 as base10 equivalent (for C# source). Spec has 064 octal. ( 52,"a20") <=> (064, "a20") ,
( 53, "a21"), // for char '5' using 53 as base10 equivalent (for C# source). Spec has 065 octal. ( 53,"a21") <=> (065, "a21") ,
( 54, "a22"), // for char '6' using 54 as base10 equivalent (for C# source). Spec has 066 octal. ( 54,"a22") <=> (066, "a22") ,
( 55, "a23"), // for char '7' using 55 as base10 equivalent (for C# source). Spec has 067 octal. ( 55,"a23") <=> (067, "a23") ,
( 56, "a24"), // for char '8' using 56 as base10 equivalent (for C# source). Spec has 070 octal. ( 56,"a24") <=> (070, "a24") ,
( 57, "a25"), // for char '9' using 57 as base10 equivalent (for C# source). Spec has 071 octal. ( 57,"a25") <=> (071, "a25") ,
( 58, "a26"), // for char ':' using 58 as base10 equivalent (for C# source). Spec has 072 octal. ( 58,"a26") <=> (072, "a26") ,
( 59, "a27"), // for char ';' using 59 as base10 equivalent (for C# source). Spec has 073 octal. ( 59,"a27") <=> (073, "a27") ,
( 60, "a28"), // for char '<' using 60 as base10 equivalent (for C# source). Spec has 074 octal. ( 60,"a28") <=> (074, "a28") ,
( 61, "a6"), // for char '=' using 61 as base10 equivalent (for C# source). Spec has 075 octal. ( 61,"a6") <=> (075, "a6") ,
( 62, "a7"), // for char '>' using 62 as base10 equivalent (for C# source). Spec has 076 octal. ( 62,"a7") <=> (076, "a7") ,
( 63, "a8"), // for char '?' using 63 as base10 equivalent (for C# source). Spec has 077 octal. ( 63,"a8") <=> (077, "a8") ,
( 64, "a9"), // for char '@' using 64 as base10 equivalent (for C# source). Spec has 0100 octal. ( 64,"a9") <=> (0100, "a9") ,
( 65, "a10"), // for char 'A' using 65 as base10 equivalent (for C# source). Spec has 0101 octal. ( 65,"a10") <=> (0101, "a10") ,
( 66, "a29"), // for char 'B' using 66 as base10 equivalent (for C# source). Spec has 0102 octal. ( 66,"a29") <=> (0102, "a29") ,
( 67, "a30"), // for char 'C' using 67 as base10 equivalent (for C# source). Spec has 0103 octal. ( 67,"a30") <=> (0103, "a30") ,
( 68, "a31"), // for char 'D' using 68 as base10 equivalent (for C# source). Spec has 0104 octal. ( 68,"a31") <=> (0104, "a31") ,
( 69, "a32"), // for char 'E' using 69 as base10 equivalent (for C# source). Spec has 0105 octal. ( 69,"a32") <=> (0105, "a32") ,
( 70, "a33"), // for char 'F' using 70 as base10 equivalent (for C# source). Spec has 0106 octal. ( 70,"a33") <=> (0106, "a33") ,
( 71, "a34"), // for char 'G' using 71 as base10 equivalent (for C# source). Spec has 0107 octal. ( 71,"a34") <=> (0107, "a34") ,
( 72, "a35"), // for char 'H' using 72 as base10 equivalent (for C# source). Spec has 0110 octal. ( 72,"a35") <=> (0110, "a35") ,
( 73, "a36"), // for char 'I' using 73 as base10 equivalent (for C# source). Spec has 0111 octal. ( 73,"a36") <=> (0111, "a36") ,
( 74, "a37"), // for char 'J' using 74 as base10 equivalent (for C# source). Spec has 0112 octal. ( 74,"a37") <=> (0112, "a37") ,
( 75, "a38"), // for char 'K' using 75 as base10 equivalent (for C# source). Spec has 0113 octal. ( 75,"a38") <=> (0113, "a38") ,
( 76, "a39"), // for char 'L' using 76 as base10 equivalent (for C# source). Spec has 0114 octal. ( 76,"a39") <=> (0114, "a39") ,
( 77, "a40"), // for char 'M' using 77 as base10 equivalent (for C# source). Spec has 0115 octal. ( 77,"a40") <=> (0115, "a40") ,
( 78, "a41"), // for char 'N' using 78 as base10 equivalent (for C# source). Spec has 0116 octal. ( 78,"a41") <=> (0116, "a41") ,
( 79, "a42"), // for char 'O' using 79 as base10 equivalent (for C# source). Spec has 0117 octal. ( 79,"a42") <=> (0117, "a42") ,
( 80, "a43"), // for char 'P' using 80 as base10 equivalent (for C# source). Spec has 0120 octal. ( 80,"a43") <=> (0120, "a43") ,
( 81, "a44"), // for char 'Q' using 81 as base10 equivalent (for C# source). Spec has 0121 octal. ( 81,"a44") <=> (0121, "a44") ,
( 82, "a45"), // for char 'R' using 82 as base10 equivalent (for C# source). Spec has 0122 octal. ( 82,"a45") <=> (0122, "a45") ,
( 83, "a46"), // for char 'S' using 83 as base10 equivalent (for C# source). Spec has 0123 octal. ( 83,"a46") <=> (0123, "a46") ,
( 84, "a47"), // for char 'T' using 84 as base10 equivalent (for C# source). Spec has 0124 octal. ( 84,"a47") <=> (0124, "a47") ,
( 85, "a48"), // for char 'U' using 85 as base10 equivalent (for C# source). Spec has 0125 octal. ( 85,"a48") <=> (0125, "a48") ,
( 86, "a49"), // for char 'V' using 86 as base10 equivalent (for C# source). Spec has 0126 octal. ( 86,"a49") <=> (0126, "a49") ,
( 87, "a50"), // for char 'W' using 87 as base10 equivalent (for C# source). Spec has 0127 octal. ( 87,"a50") <=> (0127, "a50") ,
( 88, "a51"), // for char 'X' using 88 as base10 equivalent (for C# source). Spec has 0130 octal. ( 88,"a51") <=> (0130, "a51") ,
( 89, "a52"), // for char 'Y' using 89 as base10 equivalent (for C# source). Spec has 0131 octal. ( 89,"a52") <=> (0131, "a52") ,
( 90, "a53"), // for char 'Z' using 90 as base10 equivalent (for C# source). Spec has 0132 octal. ( 90,"a53") <=> (0132, "a53") ,
( 91, "a54"), // for char '[' using 91 as base10 equivalent (for C# source). Spec has 0133 octal. ( 91,"a54") <=> (0133, "a54") ,
( 92, "a55"), // for char '\' using 92 as base10 equivalent (for C# source). Spec has 0134 octal. ( 92,"a55") <=> (0134, "a55") ,
( 93, "a56"), // for char ']' using 93 as base10 equivalent (for C# source). Spec has 0135 octal. ( 93,"a56") <=> (0135, "a56") ,
( 94, "a57"), // for char '^' using 94 as base10 equivalent (for C# source). Spec has 0136 octal. ( 94,"a57") <=> (0136, "a57") ,
( 95, "a58"), // for char '_' using 95 as base10 equivalent (for C# source). Spec has 0137 octal. ( 95,"a58") <=> (0137, "a58") ,
( 96, "a59"), // for char '`' using 96 as base10 equivalent (for C# source). Spec has 0140 octal. ( 96,"a59") <=> (0140, "a59") ,
( 97, "a60"), // for char 'a' using 97 as base10 equivalent (for C# source). Spec has 0141 octal. ( 97,"a60") <=> (0141, "a60") ,
( 98, "a61"), // for char 'b' using 98 as base10 equivalent (for C# source). Spec has 0142 octal. ( 98,"a61") <=> (0142, "a61") ,
( 99, "a62"), // for char 'c' using 99 as base10 equivalent (for C# source). Spec has 0143 octal. ( 99,"a62") <=> (0143, "a62") ,
(100, "a63"), // for char 'd' using 100 as base10 equivalent (for C# source). Spec has 0144 octal. (100,"a63") <=> (0144, "a63") ,
(101, "a64"), // for char 'e' using 101 as base10 equivalent (for C# source). Spec has 0145 octal. (101,"a64") <=> (0145, "a64") ,
(102, "a65"), // for char 'f' using 102 as base10 equivalent (for C# source). Spec has 0146 octal. (102,"a65") <=> (0146, "a65") ,
(103, "a66"), // for char 'g' using 103 as base10 equivalent (for C# source). Spec has 0147 octal. (103,"a66") <=> (0147, "a66") ,
(104, "a67"), // for char 'h' using 104 as base10 equivalent (for C# source). Spec has 0150 octal. (104,"a67") <=> (0150, "a67") ,
(105, "a68"), // for char 'i' using 105 as base10 equivalent (for C# source). Spec has 0151 octal. (105,"a68") <=> (0151, "a68") ,
(106, "a69"), // for char 'j' using 106 as base10 equivalent (for C# source). Spec has 0152 octal. (106,"a69") <=> (0152, "a69") ,
(107, "a70"), // for char 'k' using 107 as base10 equivalent (for C# source). Spec has 0153 octal. (107,"a70") <=> (0153, "a70") ,
(108, "a71"), // for char 'l' using 108 as base10 equivalent (for C# source). Spec has 0154 octal. (108,"a71") <=> (0154, "a71") ,
(109, "a72"), // for char 'm' using 109 as base10 equivalent (for C# source). Spec has 0155 octal. (109,"a72") <=> (0155, "a72") ,
(110, "a73"), // for char 'n' using 110 as base10 equivalent (for C# source). Spec has 0156 octal. (110,"a73") <=> (0156, "a73") ,
(111, "a74"), // for char 'o' using 111 as base10 equivalent (for C# source). Spec has 0157 octal. (111,"a74") <=> (0157, "a74") ,
(112, "a203"), // for char 'p' using 112 as base10 equivalent (for C# source). Spec has 0160 octal. (112,"a203") <=> (0160, "a203"),
(113, "a75"), // for char 'q' using 113 as base10 equivalent (for C# source). Spec has 0161 octal. (113,"a75") <=> (0161, "a75") ,
(114, "a204"), // for char 'r' using 114 as base10 equivalent (for C# source). Spec has 0162 octal. (114,"a204") <=> (0162, "a204"),
(115, "a76"), // for char 's' using 115 as base10 equivalent (for C# source). Spec has 0163 octal. (115,"a76") <=> (0163, "a76") ,
(116, "a77"), // for char 't' using 116 as base10 equivalent (for C# source). Spec has 0164 octal. (116,"a77") <=> (0164, "a77") ,
(117, "a78"), // for char 'u' using 117 as base10 equivalent (for C# source). Spec has 0165 octal. (117,"a78") <=> (0165, "a78") ,
(118, "a79"), // for char 'v' using 118 as base10 equivalent (for C# source). Spec has 0166 octal. (118,"a79") <=> (0166, "a79") ,
(119, "a81"), // for char 'w' using 119 as base10 equivalent (for C# source). Spec has 0167 octal. (119,"a81") <=> (0167, "a81") ,
(120, "a82"), // for char 'x' using 120 as base10 equivalent (for C# source). Spec has 0170 octal. (120,"a82") <=> (0170, "a82") ,
(121, "a83"), // for char 'y' using 121 as base10 equivalent (for C# source). Spec has 0171 octal. (121,"a83") <=> (0171, "a83") ,
(122, "a84"), // for char 'z' using 122 as base10 equivalent (for C# source). Spec has 0172 octal. (122,"a84") <=> (0172, "a84") ,
(123, "a97"), // for char '{' using 123 as base10 equivalent (for C# source). Spec has 0173 octal. (123,"a97") <=> (0173, "a97") ,
(124, "a98"), // for char '|' using 124 as base10 equivalent (for C# source). Spec has 0174 octal. (124,"a98") <=> (0174, "a98") ,
(125, "a99"), // for char '}' using 125 as base10 equivalent (for C# source). Spec has 0175 octal. (125,"a99") <=> (0175, "a99") ,
(126, "a100"), // for char '~' using 126 as base10 equivalent (for C# source). Spec has 0176 octal. (126,"a100") <=> (0176, "a100"),
(161, "a101"), // for char '¡' using 161 as base10 equivalent (for C# source). Spec has 0241 octal. (161,"a101") <=> (0241, "a101"),
(162, "a102"), // for char '¢' using 162 as base10 equivalent (for C# source). Spec has 0242 octal. (162,"a102") <=> (0242, "a102"),
(163, "a103"), // for char '£' using 163 as base10 equivalent (for C# source). Spec has 0243 octal. (163,"a103") <=> (0243, "a103"),
(164, "a104"), // for char '¤' using 164 as base10 equivalent (for C# source). Spec has 0244 octal. (164,"a104") <=> (0244, "a104"),
(165, "a106"), // for char '¥' using 165 as base10 equivalent (for C# source). Spec has 0245 octal. (165,"a106") <=> (0245, "a106"),
(166, "a107"), // for char '¦' using 166 as base10 equivalent (for C# source). Spec has 0246 octal. (166,"a107") <=> (0246, "a107"),
(167, "a108"), // for char '§' using 167 as base10 equivalent (for C# source). Spec has 0247 octal. (167,"a108") <=> (0247, "a108"),
(168, "a112"), // for char '¨' using 168 as base10 equivalent (for C# source). Spec has 0250 octal. (168,"a112") <=> (0250, "a112"),
(169, "a111"), // for char '©' using 169 as base10 equivalent (for C# source). Spec has 0251 octal. (169,"a111") <=> (0251, "a111"),
(170, "a110"), // for char 'ª' using 170 as base10 equivalent (for C# source). Spec has 0252 octal. (170,"a110") <=> (0252, "a110"),
(171, "a109"), // for char '«' using 171 as base10 equivalent (for C# source). Spec has 0253 octal. (171,"a109") <=> (0253, "a109"),
(172, "a120"), // for char '¬' using 172 as base10 equivalent (for C# source). Spec has 0254 octal. (172,"a120") <=> (0254, "a120"),
(173, "a121"), // using 173 as base10 equivalent (for C# source). Spec has 0255 octal. (173,"a121") <=> (0255, "a121"),
(174, "a122"), // for char '®' using 174 as base10 equivalent (for C# source). Spec has 0256 octal. (174,"a122") <=> (0256, "a122"),
(175, "a123"), // for char '¯' using 175 as base10 equivalent (for C# source). Spec has 0257 octal. (175,"a123") <=> (0257, "a123"),
(176, "a124"), // for char '°' using 176 as base10 equivalent (for C# source). Spec has 0260 octal. (176,"a124") <=> (0260, "a124"),
(177, "a125"), // for char '±' using 177 as base10 equivalent (for C# source). Spec has 0261 octal. (177,"a125") <=> (0261, "a125"),
(178, "a126"), // for char '²' using 178 as base10 equivalent (for C# source). Spec has 0262 octal. (178,"a126") <=> (0262, "a126"),
(179, "a127"), // for char '³' using 179 as base10 equivalent (for C# source). Spec has 0263 octal. (179,"a127") <=> (0263, "a127"),
(180, "a128"), // for char '´' using 180 as base10 equivalent (for C# source). Spec has 0264 octal. (180,"a128") <=> (0264, "a128"),
(181, "a129"), // for char 'µ' using 181 as base10 equivalent (for C# source). Spec has 0265 octal. (181,"a129") <=> (0265, "a129"),
(182, "a130"), // for char '¶' using 182 as base10 equivalent (for C# source). Spec has 0266 octal. (182,"a130") <=> (0266, "a130"),
(183, "a131"), // for char '·' using 183 as base10 equivalent (for C# source). Spec has 0267 octal. (183,"a131") <=> (0267, "a131"),
(184, "a132"), // for char '¸' using 184 as base10 equivalent (for C# source). Spec has 0270 octal. (184,"a132") <=> (0270, "a132"),
(185, "a133"), // for char '¹' using 185 as base10 equivalent (for C# source). Spec has 0271 octal. (185,"a133") <=> (0271, "a133"),
(186, "a134"), // for char 'º' using 186 as base10 equivalent (for C# source). Spec has 0272 octal. (186,"a134") <=> (0272, "a134"),
(187, "a135"), // for char '»' using 187 as base10 equivalent (for C# source). Spec has 0273 octal. (187,"a135") <=> (0273, "a135"),
(188, "a136"), // for char '¼' using 188 as base10 equivalent (for C# source). Spec has 0274 octal. (188,"a136") <=> (0274, "a136"),
(189, "a137"), // for char '½' using 189 as base10 equivalent (for C# source). Spec has 0275 octal. (189,"a137") <=> (0275, "a137"),
(190, "a138"), // for char '¾' using 190 as base10 equivalent (for C# source). Spec has 0276 octal. (190,"a138") <=> (0276, "a138"),
(191, "a139"), // for char '¿' using 191 as base10 equivalent (for C# source). Spec has 0277 octal. (191,"a139") <=> (0277, "a139"),
(192, "a140"), // for char 'À' using 192 as base10 equivalent (for C# source). Spec has 0300 octal. (192,"a140") <=> (0300, "a140"),
(193, "a141"), // for char 'Á' using 193 as base10 equivalent (for C# source). Spec has 0301 octal. (193,"a141") <=> (0301, "a141"),
(194, "a142"), // for char 'Â' using 194 as base10 equivalent (for C# source). Spec has 0302 octal. (194,"a142") <=> (0302, "a142"),
(195, "a143"), // for char 'Ã' using 195 as base10 equivalent (for C# source). Spec has 0303 octal. (195,"a143") <=> (0303, "a143"),
(196, "a144"), // for char 'Ä' using 196 as base10 equivalent (for C# source). Spec has 0304 octal. (196,"a144") <=> (0304, "a144"),
(197, "a145"), // for char 'Å' using 197 as base10 equivalent (for C# source). Spec has 0305 octal. (197,"a145") <=> (0305, "a145"),
(198, "a146"), // for char 'Æ' using 198 as base10 equivalent (for C# source). Spec has 0306 octal. (198,"a146") <=> (0306, "a146"),
(199, "a147"), // for char 'Ç' using 199 as base10 equivalent (for C# source). Spec has 0307 octal. (199,"a147") <=> (0307, "a147"),
(200, "a148"), // for char 'È' using 200 as base10 equivalent (for C# source). Spec has 0310 octal. (200,"a148") <=> (0310, "a148"),
(201, "a149"), // for char 'É' using 201 as base10 equivalent (for C# source). Spec has 0311 octal. (201,"a149") <=> (0311, "a149"),
(202, "a150"), // for char 'Ê' using 202 as base10 equivalent (for C# source). Spec has 0312 octal. (202,"a150") <=> (0312, "a150"),
(203, "a151"), // for char 'Ë' using 203 as base10 equivalent (for C# source). Spec has 0313 octal. (203,"a151") <=> (0313, "a151"),
(204, "a152"), // for char 'Ì' using 204 as base10 equivalent (for C# source). Spec has 0314 octal. (204,"a152") <=> (0314, "a152"),
(205, "a153"), // for char 'Í' using 205 as base10 equivalent (for C# source). Spec has 0315 octal. (205,"a153") <=> (0315, "a153"),
(206, "a154"), // for char 'Î' using 206 as base10 equivalent (for C# source). Spec has 0316 octal. (206,"a154") <=> (0316, "a154"),
(207, "a155"), // for char 'Ï' using 207 as base10 equivalent (for C# source). Spec has 0317 octal. (207,"a155") <=> (0317, "a155"),
(208, "a156"), // for char 'Ð' using 208 as base10 equivalent (for C# source). Spec has 0320 octal. (208,"a156") <=> (0320, "a156"),
(209, "a157"), // for char 'Ñ' using 209 as base10 equivalent (for C# source). Spec has 0321 octal. (209,"a157") <=> (0321, "a157"),
(210, "a158"), // for char 'Ò' using 210 as base10 equivalent (for C# source). Spec has 0322 octal. (210,"a158") <=> (0322, "a158"),
(211, "a159"), // for char 'Ó' using 211 as base10 equivalent (for C# source). Spec has 0323 octal. (211,"a159") <=> (0323, "a159"),
(212, "a160"), // for char 'Ô' using 212 as base10 equivalent (for C# source). Spec has 0324 octal. (212,"a160") <=> (0324, "a160"),
(213, "a161"), // for char 'Õ' using 213 as base10 equivalent (for C# source). Spec has 0325 octal. (213,"a161") <=> (0325, "a161"),
(214, "a163"), // for char 'Ö' using 214 as base10 equivalent (for C# source). Spec has 0326 octal. (214,"a163") <=> (0326, "a163"),
(215, "a164"), // for char '×' using 215 as base10 equivalent (for C# source). Spec has 0327 octal. (215,"a164") <=> (0327, "a164"),
(216, "a196"), // for char 'Ø' using 216 as base10 equivalent (for C# source). Spec has 0330 octal. (216,"a196") <=> (0330, "a196"),
(217, "a165"), // for char 'Ù' using 217 as base10 equivalent (for C# source). Spec has 0331 octal. (217,"a165") <=> (0331, "a165"),
(218, "a192"), // for char 'Ú' using 218 as base10 equivalent (for C# source). Spec has 0332 octal. (218,"a192") <=> (0332, "a192"),
(219, "a166"), // for char 'Û' using 219 as base10 equivalent (for C# source). Spec has 0333 octal. (219,"a166") <=> (0333, "a166"),
(220, "a167"), // for char 'Ü' using 220 as base10 equivalent (for C# source). Spec has 0334 octal. (220,"a167") <=> (0334, "a167"),
(221, "a168"), // for char 'Ý' using 221 as base10 equivalent (for C# source). Spec has 0335 octal. (221,"a168") <=> (0335, "a168"),
(222, "a169"), // for char 'Þ' using 222 as base10 equivalent (for C# source). Spec has 0336 octal. (222,"a169") <=> (0336, "a169"),
(223, "a170"), // for char 'ß' using 223 as base10 equivalent (for C# source). Spec has 0337 octal. (223,"a170") <=> (0337, "a170"),
(224, "a171"), // for char 'à' using 224 as base10 equivalent (for C# source). Spec has 0340 octal. (224,"a171") <=> (0340, "a171"),
(225, "a172"), // for char 'á' using 225 as base10 equivalent (for C# source). Spec has 0341 octal. (225,"a172") <=> (0341, "a172"),
(226, "a173"), // for char 'â' using 226 as base10 equivalent (for C# source). Spec has 0342 octal. (226,"a173") <=> (0342, "a173"),
(227, "a162"), // for char 'ã' using 227 as base10 equivalent (for C# source). Spec has 0343 octal. (227,"a162") <=> (0343, "a162"),
(228, "a174"), // for char 'ä' using 228 as base10 equivalent (for C# source). Spec has 0344 octal. (228,"a174") <=> (0344, "a174"),
(229, "a175"), // for char 'å' using 229 as base10 equivalent (for C# source). Spec has 0345 octal. (229,"a175") <=> (0345, "a175"),
(230, "a176"), // for char 'æ' using 230 as base10 equivalent (for C# source). Spec has 0346 octal. (230,"a176") <=> (0346, "a176"),
(231, "a177"), // for char 'ç' using 231 as base10 equivalent (for C# source). Spec has 0347 octal. (231,"a177") <=> (0347, "a177"),
(232, "a178"), // for char 'è' using 232 as base10 equivalent (for C# source). Spec has 0350 octal. (232,"a178") <=> (0350, "a178"),
(233, "a179"), // for char 'é' using 233 as base10 equivalent (for C# source). Spec has 0351 octal. (233,"a179") <=> (0351, "a179"),
(234, "a193"), // for char 'ê' using 234 as base10 equivalent (for C# source). Spec has 0352 octal. (234,"a193") <=> (0352, "a193"),
(235, "a180"), // for char 'ë' using 235 as base10 equivalent (for C# source). Spec has 0353 octal. (235,"a180") <=> (0353, "a180"),
(236, "a199"), // for char 'ì' using 236 as base10 equivalent (for C# source). Spec has 0354 octal. (236,"a199") <=> (0354, "a199"),
(237, "a181"), // for char 'í' using 237 as base10 equivalent (for C# source). Spec has 0355 octal. (237,"a181") <=> (0355, "a181"),
(238, "a200"), // for char 'î' using 238 as base10 equivalent (for C# source). Spec has 0356 octal. (238,"a200") <=> (0356, "a200"),
(239, "a182"), // for char 'ï' using 239 as base10 equivalent (for C# source). Spec has 0357 octal. (239,"a182") <=> (0357, "a182"),
(241, "a201"), // for char 'ñ' using 241 as base10 equivalent (for C# source). Spec has 0361 octal. (241,"a201") <=> (0361, "a201"),
(242, "a183"), // for char 'ò' using 242 as base10 equivalent (for C# source). Spec has 0362 octal. (242,"a183") <=> (0362, "a183"),
(243, "a184"), // for char 'ó' using 243 as base10 equivalent (for C# source). Spec has 0363 octal. (243,"a184") <=> (0363, "a184"),
(244, "a197"), // for char 'ô' using 244 as base10 equivalent (for C# source). Spec has 0364 octal. (244,"a197") <=> (0364, "a197"),
(245, "a185"), // for char 'õ' using 245 as base10 equivalent (for C# source). Spec has 0365 octal. (245,"a185") <=> (0365, "a185"),
(246, "a194"), // for char 'ö' using 246 as base10 equivalent (for C# source). Spec has 0366 octal. (246,"a194") <=> (0366, "a194"),
(247, "a198"), // for char '÷' using 247 as base10 equivalent (for C# source). Spec has 0367 octal. (247,"a198") <=> (0367, "a198"),
(248, "a186"), // for char 'ø' using 248 as base10 equivalent (for C# source). Spec has 0370 octal. (248,"a186") <=> (0370, "a186"),
(249, "a195"), // for char 'ù' using 249 as base10 equivalent (for C# source). Spec has 0371 octal. (249,"a195") <=> (0371, "a195"),
(250, "a187"), // for char 'ú' using 250 as base10 equivalent (for C# source). Spec has 0372 octal. (250,"a187") <=> (0372, "a187"),
(251, "a188"), // for char 'û' using 251 as base10 equivalent (for C# source). Spec has 0373 octal. (251,"a188") <=> (0373, "a188"),
(252, "a189"), // for char 'ü' using 252 as base10 equivalent (for C# source). Spec has 0374 octal. (252,"a189") <=> (0374, "a189"),
(253, "a190"), // for char 'ý' using 253 as base10 equivalent (for C# source). Spec has 0375 octal. (253,"a190") <=> (0375, "a190"),
(254, "a191") // for char 'þ' using 254 as base10 equivalent (for C# source). Spec has 0376 octal. (254,"a191") <=> (0376, "a191")
};
/// <summary>

View File

@ -13,9 +13,9 @@
using System.Reflection;
using System.Collections.Generic;
using UglyToad.PdfPig.Fonts.AdobeFontMetrics;
using System.IO;
using System.IO;
using System.Diagnostics;
public class Standard14WritingFontTests
{
@ -24,8 +24,8 @@
{
PdfDocumentBuilder pdfBuilder = new PdfDocumentBuilder();
PdfDocumentBuilder.AddedFont F1 = pdfBuilder.AddStandard14Font(Standard14Font.ZapfDingbats);
var EncodingTable = GetEncodingTable(typeof(UglyToad.PdfPig.Fonts.Encodings.ZapfDingbatsEncoding));
var unicodesCharacters = GetUnicodeCharacters(EncodingTable, GlyphList.ZapfDingbats);
var encodingTable = GetEncodingTable(typeof(UglyToad.PdfPig.Fonts.Encodings.ZapfDingbatsEncoding));
var unicodesCharacters = GetUnicodeCharacters(encodingTable, GlyphList.ZapfDingbats);
{
PdfDocumentBuilder.AddedFont F2 = pdfBuilder.AddStandard14Font(Standard14Font.TimesRoman);
PdfPageBuilder page = pdfBuilder.AddPage(PageSize.A4);
@ -45,13 +45,13 @@
point = new PdfPoint(leftX, newY);
var eachRowY = new List<double>();
eachRowY.Add(newY); // First row
(var maxCharacterHeight, var maxCharacterWidth) = GetCharacterDetails(page,F1, 12d,unicodesCharacters);
var context = GetContext(F1,page, nameof(F1), F2,maxCharacterHeight,maxCharacterWidth);
(var maxCharacterHeight, var maxCharacterWidth) = GetCharacterDetails(page, F1, 12d, unicodesCharacters);
var context = GetContext(F1, page, nameof(F1), F2, maxCharacterHeight, maxCharacterWidth);
// Font specific character codes (in black)
page.SetTextAndFillColor(0,0,0); //Black
foreach ((var code, var name) in EncodingTable)
page.SetTextAndFillColor(0, 0, 0); //Black
foreach ((var code, var name) in encodingTable)
{
var ch = (char)code; // Note code is already base 10 no need to use OctalHelpers.FromOctalInt or System.Convert.ToInt32($"{code}", 8);
point = AddLetterWithContext(point, $"{ch}", context, true);
@ -62,15 +62,15 @@
// Second set of rows for (unicode) characters : Test mapping from (C#) unicode chars to PDF encoding
newY = newY - maxCharacterHeight * 1.2;
point = new PdfPoint(leftX, newY);
// Unicode character codes (in blue)
page.SetTextAndFillColor(0, 0, 200); //Blue
foreach (var unicodeCh in unicodesCharacters)
{
point = AddLetterWithContext(point, $"{unicodeCh}", context, isHexLabel: true);
}
}
}
// Save one page PDF to file system for manual review.
var pdfBytes = pdfBuilder.Build();
WritePdfFile(nameof(ZapfDingbatsFontAddText), pdfBytes);
@ -88,12 +88,12 @@
.ToList();
Assert.Equal(188,lettersFontSpecificCodes.Count);
Assert.Equal(188, lettersFontSpecificCodes.Count);
for (int i = 0; i < lettersFontSpecificCodes.Count; i++)
{
var letter = lettersFontSpecificCodes[i];
(var code, var name) = EncodingTable[i];
(var code, var name) = encodingTable[i];
var unicodeString = GlyphList.ZapfDingbats.NameToUnicode(name);
var letterCharacter = letter.Value[0];
@ -107,11 +107,11 @@
var lettersUnicode = letters.Where(l => l.FontName == "ZapfDingbats"
&& l.Color.ToRGBValues().b > 0.78m)
.ToList();
Assert.Equal(188,lettersUnicode.Count);
Assert.Equal(188, lettersUnicode.Count);
for (int i = 0; i < lettersUnicode.Count; i++)
{
var letter = lettersUnicode[i];
var letterCharacter = letter.Value[0];
var unicodeCharacter = unicodesCharacters[i];
Assert.Equal(letterCharacter, unicodeCharacter);
@ -127,12 +127,12 @@
PdfDocumentBuilder pdfBuilder = new PdfDocumentBuilder();
PdfDocumentBuilder.AddedFont F1 = pdfBuilder.AddStandard14Font(Standard14Font.ZapfDingbats);
var EncodingTable = GetEncodingTable(typeof(UglyToad.PdfPig.Fonts.Encodings.ZapfDingbatsEncoding));
{
{
PdfPageBuilder page = pdfBuilder.AddPage(PageSize.A4);
var cm = (page.PageSize.Width / 8.5 / 2.54);
var cm = (page.PageSize.Width / 8.5 / 2.54);
var point = new PdfPoint(cm, page.PageSize.Top - cm);
{
// Get the codes that have no character associated in the font specific coding.
var codesUnder255 = Enumerable.Range(0, 255).Select(v => (char)v).ToArray();
@ -144,7 +144,7 @@
{
try
{
var letter = page.AddText($"{ch}", 12, point, F1);
var letter = page.AddText($"{ch}", 12, point, F1);
Assert.True(true, $"Unexpected. Character: '{ch}' (0x{(int)ch:X}) should throw. Not supported.");
}
catch (InvalidOperationException ex)
@ -157,7 +157,7 @@
{
var letter = page.MeasureText($"{ch}", 12, point, F1);
Assert.True(true, $"Unexpected. Character: '{ch}' (0x{(int)ch:X}) should throw. Not supported.");
}
catch (InvalidOperationException ex)
{
@ -201,7 +201,7 @@
}
}
}
}
}
}
[Fact]
@ -210,7 +210,7 @@
PdfDocumentBuilder pdfBuilder = new PdfDocumentBuilder();
PdfDocumentBuilder.AddedFont F1 = pdfBuilder.AddStandard14Font(Standard14Font.Symbol);
var EncodingTable = GetEncodingTable(typeof(UglyToad.PdfPig.Fonts.Encodings.SymbolEncoding));
var unicodesCharacters = GetUnicodeCharacters(EncodingTable, GlyphList.AdobeGlyphList);
var unicodesCharacters = GetUnicodeCharacters(EncodingTable, GlyphList.AdobeGlyphList);
{
PdfDocumentBuilder.AddedFont F2 = pdfBuilder.AddStandard14Font(Standard14Font.TimesRoman);
PdfPageBuilder page = pdfBuilder.AddPage(PageSize.A4);
@ -227,9 +227,9 @@
point = new PdfPoint(leftX, newY);
letters = page.AddText("Font Specific encoding in Black (octal), Unicode in Blue (hex), Red only available using Unicode", 10, point, F2);
newY = newY - letters.Select(v => v.GlyphRectangle.Height).Max() * 3;
(var maxCharacterHeight, var maxCharacterWidth) = GetCharacterDetails(page, F1, 12d, unicodesCharacters);
var context = GetContext(F1, page, nameof(F1), F2, maxCharacterHeight, maxCharacterWidth);
@ -255,11 +255,11 @@
point = AddLetterWithContext(point, $"{ch}", context, isTextColorBlack);
if (eachRowY.Last() != point.Y) { eachRowY.Add(point.Y); }
}
// Second set of rows for (unicode) characters : Test mapping from (C#) unicode chars to font specific encoding
newY = newY - maxCharacterHeight * 1.2;
point = new PdfPoint(leftX, newY);
page.SetTextAndFillColor(0, 0, 200); //Blue
foreach (var unicodeCh in unicodesCharacters)
{
@ -288,7 +288,7 @@
Assert.Equal(189, lettersFontSpecificCodes.Count);
Assert.Equal(EncodingTable.Length, lettersFontSpecificCodes.Count);
Assert.Equal(EncodingTable.Length, lettersFontSpecificCodes.Count);
for (int i = 0; i < lettersFontSpecificCodes.Count; i++)
{
var letter = lettersFontSpecificCodes[i];
@ -299,7 +299,7 @@
var letterCharacter = letter.Value[0];
var unicodeCharacter = unicodeString[0];
//Debug.WriteLine($"{letterCharacter} , {unicodeCharacter}");
Assert.Equal(letterCharacter, unicodeCharacter);
Assert.Equal(letterCharacter, unicodeCharacter);
}
}
@ -315,7 +315,7 @@
var letterCharacter = letter.Value[0];
var unicodeCharacter = unicodesCharacters[i];
//Debug.WriteLine($"{letterCharacter} , {unicodeCharacter}");
Assert.Equal(letterCharacter, unicodeCharacter);
Assert.Equal(letterCharacter, unicodeCharacter);
}
}
}
@ -367,34 +367,35 @@
}
}
{
{
var unicodesCharacters = GetUnicodeCharacters(EncodingTable, GlyphList.AdobeGlyphList);
var randomCharacters = new char[10];
{
var listUnicodeCharacters = unicodesCharacters.Select(v => (int)v).ToList();
var rnd = new Random();
int nextIndex = 0;
while (nextIndex < randomCharacters.Length)
{
{
var value = rnd.Next(0x10ffff);
if (listUnicodeCharacters.Contains(value)) { continue; }
char ch = (char)value;
char ch = (char)value;
int i = (int)ch;
if (i >= 0xd800 && i <= 0xdfff) { continue; }
randomCharacters[nextIndex++] = ch;
Debug.WriteLine($"{value:X}");
}
}
}
foreach (var ch in randomCharacters)
{
int i = (int)ch;
if (i > 0x10ffff) {
Debug.WriteLine("Unexpected unicode point. Too large to be unicode. Expected: <0x10ffff. Got: 0x{i:X}");
if (i > 0x10ffff)
{
Debug.WriteLine("Unexpected unicode point. Too large to be unicode. Expected: <0x10ffff. Got: 0x{i:X}");
continue;
}
if (i >= 0xd800 && i<=0xdfff)
if (i >= 0xd800 && i <= 0xdfff)
{
Debug.WriteLine("Unexpected unicode point that is not a surrogate Expected: <0xd800 && >0xdfff. Got: 0x{i:X}");
continue;
@ -441,7 +442,7 @@
PdfDocumentBuilder.AddedFont F10 = pdfBuilder.AddStandard14Font(Standard14Font.CourierBold);
PdfDocumentBuilder.AddedFont F11 = pdfBuilder.AddStandard14Font(Standard14Font.CourierOblique);
PdfDocumentBuilder.AddedFont F12 = pdfBuilder.AddStandard14Font(Standard14Font.CourierBoldOblique);
var standardFontsWithStandardEncoding = new PdfDocumentBuilder.AddedFont[]
{
F1,
@ -457,7 +458,7 @@
F11,
F12
};
//AddLetterWithFont(page, point, "v", F1, nameof(F1));
//AddLetterWithFont(page, point, "v", F2, nameof(F2));
//AddLetterWithFont(page, point, "v", F3, nameof(F3));
@ -478,7 +479,7 @@
// All 12 fonts should conform to 'StanardEncoding'
var EncodingTable = ((int code, string name)[])GetEncodingTable(typeof(UglyToad.PdfPig.Fonts.Encodings.StandardEncoding));
var unicodesCharacters = GetUnicodeCharacters(EncodingTable, GlyphList.AdobeGlyphList);
int fontNumber = 0;
foreach (var font in standardFontsWithStandardEncoding)
{
@ -486,10 +487,10 @@
var storedFont = pdfBuilder.Fonts[font.Id];
var fontProgram = storedFont.FontProgram;
var fontName = fontProgram.Name;
{
PdfPageBuilder page = pdfBuilder.AddPage(PageSize.A4);
double topPageY = page.PageSize.Top - 50;
double inch = (page.PageSize.Width / 8.5);
double cm = inch / 2.54;
@ -497,16 +498,16 @@
var point = new PdfPoint(leftX, topPageY);
DateTimeStampPage(pdfBuilder, page, point, cm);
var letters = page.AddText("Adobe Standard Font "+ fontName, 21, point, F2);
var letters = page.AddText("Adobe Standard Font " + fontName, 21, point, F2);
var newY = topPageY - letters.Select(v => v.GlyphRectangle.Height).Max() * 1.2;
point = new PdfPoint(leftX, newY);
letters = page.AddText("Font Specific encoding in Black, Unicode in Blue, Red only available using Unicode", 10, point, F2);
newY = newY - letters.Select(v => v.GlyphRectangle.Height).Max() * 3;
point = new PdfPoint(leftX, newY);
var eachRowY = new List<double>(new[] { newY });
var metrics = Standard14Cache[fontName];
var codesFromMetrics = new HashSet<int>();
@ -520,8 +521,7 @@
bool isTextColorBlack = true;
foreach ((var codeNotBase8Converted, var name) in EncodingTable)
{
var codeFontSpecific = System.Convert.ToInt32($"{codeNotBase8Converted}", 8);
var isToggleColor = false;
var codeFontSpecific = Convert.ToInt32($"{codeNotBase8Converted}", 8);
var code = codeFontSpecific;
if (codeFontSpecific == 0xc6) { code = 0x02D8; }
else if (codeFontSpecific == 0xb4) { code = 0x00b7; }
@ -536,19 +536,19 @@
else if (codeFontSpecific == 0xf8) { code = 0x0142; }
else if (codeFontSpecific == 0x27) { code = 0x2019; }
if (code != codeFontSpecific && isTextColorBlack) { page.SetTextAndFillColor(200, 0, 0); isTextColorBlack = false; }
if (code == codeFontSpecific && isTextColorBlack == false) { page.SetTextAndFillColor(0, 0, 0); isTextColorBlack = true; }
if (code == codeFontSpecific && isTextColorBlack == false) { page.SetTextAndFillColor(0, 0, 0); isTextColorBlack = true; }
char ch = (char)code;
point = AddLetterWithContext(point, $"{ch}", context, isTextColorBlack);
if (eachRowY.Last() != point.Y) { eachRowY.Add(point.Y); }
if (eachRowY.Last() != point.Y) { eachRowY.Add(point.Y); }
}
foreach (var metric in metrics.CharacterMetrics)
{
var code = metric.Value.CharacterCode;
if (code == -1) continue;
codesFromMetrics.Add(code);
codesFromMetrics.Add(code);
}
foreach ((var codeNotBase8Converted, var name) in EncodingTable)
@ -563,14 +563,14 @@
}
Assert.False(isMissing, $"Adobe Standard Font '{fontName}' contains code(s) in Standard encoding table but not in font metrics. See Debug output for details.");
// Second set of rows for (unicode) characters : Test mapping from (C#) unicode chars to PDF encoding
newY = newY - maxCharacterHeight * 1.2;
point = new PdfPoint(leftX, newY);
page.SetTextAndFillColor(0, 0, 200); //Blue
foreach (var unicodeCh in unicodesCharacters)
{
point = AddLetterWithContext(point, $"{unicodeCh}", context, isHexLabel:true);
{
point = AddLetterWithContext(point, $"{unicodeCh}", context, isHexLabel: true);
}
}
}
@ -585,13 +585,13 @@
foreach (var page in document.GetPages())
{
var letters = page.Letters;
var expectedFontName = letters.FirstOrDefault(l=>l.FontSize == 12d).FontName;
var expectedFontName = letters.FirstOrDefault(l => l.FontSize == 12d).FontName;
{
var lettersFontSpecificCodes = letters.Where(l => l.FontName == expectedFontName
&& l.FontSize == 12d
&& ( l.Color.ToRGBValues().b == 0
&& (l.Color.ToRGBValues().b == 0
|| l.Color.ToRGBValues().r == 200)
)
.ToList();
@ -615,10 +615,10 @@
{
var lettersUnicode = letters.Where(l => l.FontName == expectedFontName
&& l.FontSize == 12d
&& l.FontSize == 12d
&& l.Color.ToRGBValues().b > 0.78m)
.ToList();
Assert.Equal(149,lettersUnicode.Count);
Assert.Equal(149, lettersUnicode.Count);
for (int i = 0; i < lettersUnicode.Count; i++)
{
var letter = lettersUnicode[i];
@ -626,7 +626,7 @@
var letterCharacter = letter.Value[0];
var unicodeCharacter = unicodesCharacters[i];
//Debug.WriteLine($"{letterCharacter} , {unicodeCharacter}");
Assert.Equal(unicodeCharacter, letterCharacter);
Assert.Equal(unicodeCharacter, letterCharacter);
}
}
@ -714,7 +714,7 @@
var storedFont = pdfBuilder.Fonts[font.Id];
var fontProgram = storedFont.FontProgram;
var fontName = fontProgram.Name;
foreach (var ch in invalidCharactersUnder255)
{
try
@ -783,7 +783,7 @@
}
}
internal PdfPoint AddLetterWithContext( PdfPoint point, string stringToAdd, ( PdfDocumentBuilder.AddedFont font, PdfPageBuilder page, string fontName, PdfDocumentBuilder.AddedFont fontLabel, double maxCharacterHeight, double maxCharacterWidth)context, bool isOctalLabel = false, bool isHexLabel = false)
internal PdfPoint AddLetterWithContext(PdfPoint point, string stringToAdd, (PdfDocumentBuilder.AddedFont font, PdfPageBuilder page, string fontName, PdfDocumentBuilder.AddedFont fontLabel, double maxCharacterHeight, double maxCharacterWidth) context, bool isOctalLabel = false, bool isHexLabel = false)
{
var font = context.font;
var page = context.page;
@ -792,24 +792,24 @@
var maxCharacterHeight = context.maxCharacterHeight;
var maxCharacterWidth = context.maxCharacterWidth;
return AddLetter(page, point, stringToAdd, font, fontName, fontLabel, maxCharacterHeight, maxCharacterWidth,isOctalLabel, isHexLabel);
return AddLetter(page, point, stringToAdd, font, fontName, fontLabel, maxCharacterHeight, maxCharacterWidth, isOctalLabel, isHexLabel);
}
internal PdfPoint AddLetter(PdfPageBuilder page, PdfPoint point, string stringToAdd, PdfDocumentBuilder.AddedFont font, string fontName, PdfDocumentBuilder.AddedFont fontLabel, double maxCharacterHeight, double maxCharacterWidth, bool isOctalLabel = false, bool isHexLabel = false)
{
if (stringToAdd is null) { throw new ArgumentException("Text to add must be a single letter.", nameof(stringToAdd)); }
if (stringToAdd.Length > 1) { throw new ArgumentException("Text to add must be a single letter.", nameof(stringToAdd)); }
if (fontName.ToUpper() != fontName) { throw new ArgumentException(@"FontName must be in uppercase eg. ""F1"".", nameof(fontName)); }
var letter = page.AddText(stringToAdd, 12, point, font);
if (isOctalLabel)
{
var labelPointSize = 5;
var octalString = System.Convert.ToString((int)stringToAdd[0],8).PadLeft(3, '0');
var octalString = System.Convert.ToString((int)stringToAdd[0], 8).PadLeft(3, '0');
var label = octalString;
var codeMidPoint = point.X + letter[0].GlyphRectangle.Width / 2;
var codeMidPoint = point.X + letter[0].GlyphRectangle.Width / 2;
var ml = page.MeasureText(label, labelPointSize, point, fontLabel);
var labelY = point.Y + ml.Max(v => v.GlyphRectangle.Height) * 0.1 + maxCharacterHeight;
var xLabel =codeMidPoint - (ml.Sum(v => v.GlyphRectangle.Width) /2);
var xLabel = codeMidPoint - (ml.Sum(v => v.GlyphRectangle.Width) / 2);
var labelPoint = new PdfPoint(xLabel, labelY);
page.AddText(label, labelPointSize, labelPoint, fontLabel);
}
@ -831,20 +831,20 @@
Assert.NotNull(letter); // We should get back something.
Assert.Equal(1, letter.Count); // There should be only one letter returned after the add operation.
Assert.Equal(stringToAdd, letter[0].Value); // Check we got back the name letter (eg. "v")
//Debug.WriteLine($"{letter[0]}");
//Debug.WriteLine($"{letter[0]}");
double inch = (page.PageSize.Width / 8.5);
double cm = inch / 2.54;
var letterWidth = letter[0].GlyphRectangle.Width * 2;
var letterHeight = letter[0].GlyphRectangle.Height * 2;
var newX = point.X + maxCharacterWidth * 1.1;
var newY = point.Y;
if (newX > page.PageSize.Width - cm)
{
return newLine(cm, point.Y, maxCharacterHeight);
return newLine(cm, point.Y, maxCharacterHeight);
}
return new PdfPoint(newX, newY);
}
@ -852,7 +852,7 @@
PdfPoint newLine(double cm, double y, double maxCharacterHeight)
{
var newX = 1 * cm;
var newY = y - maxCharacterHeight * 5;
var newY = y - maxCharacterHeight * 5;
return new PdfPoint(newX, newY);
}
@ -887,19 +887,19 @@
}
private static char[]GetUnicodeCharacters((int code, string name)[] EncodingTable, GlyphList glyphList)
private static char[] GetUnicodeCharacters((int code, string name)[] EncodingTable, GlyphList glyphList)
{
var gylphNamesFromEncodingTable = EncodingTable.Select(v => v.name).ToArray();
char[] unicodesCharacters = gylphNamesFromEncodingTable.Select(v => (char)glyphList.NameToUnicode(v)[0]).ToArray();
return unicodesCharacters;
}
( double maxCharacterHeight,double maxCharacterWidth)GetCharacterDetails(PdfPageBuilder page,PdfDocumentBuilder.AddedFont font, double fontSize, char[] unicodesCharacters)
{
(double maxCharacterHeight, double maxCharacterWidth) GetCharacterDetails(PdfPageBuilder page, PdfDocumentBuilder.AddedFont font, double fontSize, char[] unicodesCharacters)
{
double maxCharacterHeight;
double maxCharacterWidth;
{
var point = new PdfPoint(10, 10);
var characterRectangles = unicodesCharacters.Select(v => page.MeasureText($"{v}", 12m,point, font)[0].GlyphRectangle);
var characterRectangles = unicodesCharacters.Select(v => page.MeasureText($"{v}", 12m, point, font)[0].GlyphRectangle);
maxCharacterHeight = characterRectangles.Max(v => v.Height);
maxCharacterWidth = characterRectangles.Max(v => v.Height);
}
@ -919,7 +919,7 @@
{
var courierFont = pdfBuilder.AddStandard14Font(Standard14Font.Courier);
var stampTextUTC = " UTC: " + DateTime.UtcNow.ToString("yyyy-MMM-dd HH:mm");
var stampTextUTC = " UTC: " + DateTime.UtcNow.ToString("yyyy-MMM-dd HH:mm");
var stampTextLocal = "Local: " + DateTimeOffset.Now.ToString("yyyy-MMM-dd HH:mm zzz");
const decimal fontSize = 7m;
@ -937,7 +937,7 @@
{
point = new PdfPoint(indentFromLeft, point.Y);
var letters = page.AddText(stampTextUTC, 7m, point, courierFont);
var maxHeight = letters.Max(v=>v.GlyphRectangle.Height);
var maxHeight = letters.Max(v => v.GlyphRectangle.Height);
point = new PdfPoint(indentFromLeft, point.Y - maxHeight * 1.2);
}

View File

@ -6,7 +6,7 @@
using ClipperLibrary;
using Core;
using Graphics;
using UglyToad.PdfPig.Logging;
using Logging;
using static Core.PdfSubpath;
/// <summary>
@ -222,10 +222,6 @@
}
else if (command is Close)
{
if (movePoint == null)
{
throw new ArgumentException("ToClipperPolygon(): Move command was null, cannot close the subpath.");
}
yield return movePoint;
}
}

View File

@ -12,7 +12,7 @@ namespace UglyToad.PdfPig.PdfFonts.Simple
/// <summary>
/// A font using one of the Adobe Standard 14 fonts. Can use a custom encoding.
/// </summary>
internal class Type1Standard14Font: IFont
internal class Type1Standard14Font : IFont
{
private readonly AdobeFontMetrics standardFontMetrics;
private readonly Encoding encoding;
@ -31,7 +31,7 @@ namespace UglyToad.PdfPig.PdfFonts.Simple
encoding = overrideEncoding ?? new AdobeFontMetricsEncoding(standardFontMetrics);
Name = NameToken.Create(standardFontMetrics.FontName);
IsVertical = false;
Details = new FontDetails(Name.Data,
standardFontMetrics.Weight == "Bold",
@ -62,7 +62,7 @@ namespace UglyToad.PdfPig.PdfFonts.Simple
return true;
}
if (encoding is StandardEncoding || encoding is SymbolEncoding)
{
var listed = GlyphList.AdobeGlyphList.NameToUnicode(name);
@ -70,7 +70,7 @@ namespace UglyToad.PdfPig.PdfFonts.Simple
value = listed;
return true;
}
}
else
{
Debug.WriteLine($"Warning: Type1Standard14Font with unexpected encoding: '{encoding.EncodingName}' Expected: 'ZapfDingbatsEncoding','SymbolEncoding' or 'StandardEncoding' . Font: '{standardFontMetrics.FontName}'");
@ -102,7 +102,7 @@ namespace UglyToad.PdfPig.PdfFonts.Simple
var x = metrics.Width.X;
var y = metrics.Width.Y;
if (metrics.Width.X == 0 && metrics.BoundingBox.Width > 0)
{
x = metrics.BoundingBox.Width;
@ -112,7 +112,7 @@ namespace UglyToad.PdfPig.PdfFonts.Simple
{
y = metrics.BoundingBox.Height;
}
return new PdfRectangle(0, 0, x, y);
}