writeContent method

  1. @override
void writeContent(
  1. PdfStream s
)

Implementation

@override
void writeContent(PdfStream s) {
  final writer = _streamWriter;
  if (writer == null) {
    super.writeContent(s);
    return;
  }
  if (pdfDocument.encryption != null) {
    throw UnsupportedError(
      'PdfImage.jpegStream does not support encrypted documents',
    );
  }

  params['/Length'] = PdfNum(_streamLength!);
  params.output(this, s, settings.verbose ? 0 : null);
  if (settings.verbose) {
    s.putByte(0x0a);
  }
  s.putString('stream\n');
  final start = s.offset;
  writer(s);
  final bytesWritten = s.offset - start;
  if (bytesWritten != _streamLength) {
    throw StateError(
      'JPEG stream wrote $bytesWritten bytes; expected $_streamLength',
    );
  }
  s.putString('\nendstream\n');
}