internal FileParser( IInputStream stream, files.File file ) : base(stream) { this.file = file; }
internal Reader( IInputStream stream, files.File file ) { this.parser = new FileParser(stream, file); }
internal Parser( IInputStream stream, files.File file ) { this.stream = stream; this.file = file; }
internal CompressedWriter( files.File file, IOutputStream stream ) : base(file, stream) { }
internal PlainWriter( files.File file, IOutputStream stream ) : base(file, stream) { }
public override void WriteTo( IOutputStream stream, files.File context ) { MemoryStream buffer = new MemoryStream(); { byte[] rawValue = RawValue; switch (serializationMode) { case SerializationModeEnum.Literal: buffer.WriteByte(LiteralLeftDelimiterCode); /* * NOTE: Literal lexical conventions prescribe that the following reserved characters * are to be escaped when placed inside string character sequences: * - \n Line feed (LF) * - \r Carriage return (CR) * - \t Horizontal tab (HT) * - \b Backspace (BS) * - \f Form feed (FF) * - \( Left parenthesis * - \) Right parenthesis * - \\ Backslash */ for ( int index = 0; index < rawValue.Length; index++ ) { byte valueByte = rawValue[index]; switch (valueByte) { case LineFeedCode: buffer.WriteByte(LiteralEscapeCode); valueByte = 110; break; case CarriageReturnCode: buffer.WriteByte(LiteralEscapeCode); valueByte = 114; break; case HorizontalTabCode: buffer.WriteByte(LiteralEscapeCode); valueByte = 116; break; case BackspaceCode: buffer.WriteByte(LiteralEscapeCode); valueByte = 98; break; case FormFeedCode: buffer.WriteByte(LiteralEscapeCode); valueByte = 102; break; case LiteralLeftDelimiterCode: case LiteralRightDelimiterCode: case LiteralEscapeCode: buffer.WriteByte(LiteralEscapeCode); break; } buffer.WriteByte(valueByte); } buffer.WriteByte(LiteralRightDelimiterCode); break; case SerializationModeEnum.Hex: buffer.WriteByte(HexLeftDelimiterCode); byte[] value = tokens::Encoding.Pdf.Encode(ConvertUtils.ByteArrayToHex(rawValue)); buffer.Write(value, 0, value.Length); buffer.WriteByte(HexRightDelimiterCode); break; default: throw new NotImplementedException(); } } stream.Write(buffer.ToArray()); }