/// <summary> /// Writes the specified value to the PDF stream. /// </summary> public void Write(PdfString value) { WriteSeparator(CharCat.Delimiter); #if true PdfStringEncoding encoding = (PdfStringEncoding)(value.Flags & PdfStringFlags.EncodingMask); string pdf; if ((value.Flags & PdfStringFlags.HexLiteral) == 0) { pdf = PdfEncoders.ToStringLiteral(value.Value, encoding, SecurityHandler); } else { pdf = PdfEncoders.ToHexStringLiteral(value.Value, encoding, SecurityHandler); } WriteRaw(pdf); #else switch (value.Flags & PdfStringFlags.EncodingMask) { case PdfStringFlags.Undefined: case PdfStringFlags.PDFDocEncoding: if ((value.Flags & PdfStringFlags.HexLiteral) == 0) { WriteRaw(PdfEncoders.DocEncode(value.Value, false)); } else { WriteRaw(PdfEncoders.DocEncodeHex(value.Value, false)); } break; case PdfStringFlags.WinAnsiEncoding: throw new NotImplementedException("Unexpected encoding: WinAnsiEncoding"); case PdfStringFlags.Unicode: if ((value.Flags & PdfStringFlags.HexLiteral) == 0) { WriteRaw(PdfEncoders.DocEncode(value.Value, true)); } else { WriteRaw(PdfEncoders.DocEncodeHex(value.Value, true)); } break; case PdfStringFlags.StandardEncoding: case PdfStringFlags.MacRomanEncoding: case PdfStringFlags.MacExpertEncoding: default: throw new NotImplementedException("Unexpected encoding"); } #endif this.lastCat = CharCat.Delimiter; }