private static PdfArray GetIndexedCsArray(PdfObject @base, int hival, PdfString lookup) { PdfArray indexed = new PdfArray(); indexed.Add(PdfName.Indexed); indexed.Add(@base); indexed.Add(new PdfNumber(hival)); indexed.Add(lookup.SetHexWriting(true)); return(indexed); }
virtual public void stringObjects() { byte[] bytes = new byte[256]; for (int i = 0; i < 256; i++) { bytes[i] = (byte)i; } PdfString str = new PdfString(bytes); MemoryStream baos = new MemoryStream(); str.SetHexWriting(true); str.ToPdf(null, baos); String s = Encoding.UTF8.GetString(baos.ToArray()); Assert.AreEqual(514, s.Length); }
internal void AddRange(PdfString from, PdfString to, PdfObject code) { byte[] a1 = DecodeStringToByte(from); byte[] a2 = DecodeStringToByte(to); if (a1.Length != a2.Length || a1.Length == 0) { throw new ArgumentException("Invalid map."); } byte[] sout = null; if (code is PdfString) { sout = DecodeStringToByte((PdfString)code); } int start = a1[a1.Length - 1] & 0xff; int end = a2[a2.Length - 1] & 0xff; for (int k = start; k <= end; ++k) { a1[a1.Length - 1] = (byte)k; PdfString s = new PdfString(a1); s.SetHexWriting(true); if (code is PdfArray) { AddChar(s, ((PdfArray)code)[k - start]); } else if (code is PdfNumber) { int nn = ((PdfNumber)code).IntValue + k - start; AddChar(s, new PdfNumber(nn)); } else if (code is PdfString) { PdfString s1 = new PdfString(sout); s1.SetHexWriting(true); ++sout[sout.Length - 1]; AddChar(s, s1); } } }