Skip to content

Instantly share code, notes, and snippets.

@jbogard
Last active September 12, 2018 09:40
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save jbogard/8804255 to your computer and use it in GitHub Desktop.
Save jbogard/8804255 to your computer and use it in GitHub Desktop.
public class PdfFilter : Stream
{
private readonly Stream _oldFilter;
private readonly string _baseUrl;
private readonly MemoryStream _memStream;
public override bool CanSeek
{
get { return false; }
}
public override bool CanWrite
{
get { return true; }
}
public override bool CanRead
{
get { return false; }
}
public override long Position
{
get { return 0L; }
set { }
}
public override long Length
{
get { return 0L; }
}
public PdfFilter(Stream oldFilter, string baseUrl)
{
_oldFilter = oldFilter;
_baseUrl = baseUrl;
_memStream = new MemoryStream();
}
public override int Read(byte[] buffer, int offset, int count)
{
return 0;
}
public override long Seek(long offset, SeekOrigin origin)
{
return 0L;
}
public override void SetLength(long value)
{
}
public override void Write(byte[] buffer, int offset, int count)
{
_memStream.Write(buffer, offset, count);
}
public override void Flush()
{
}
public override void Close()
{
var converter = new PdfConverter
{
MediaType = "print",
};
converter.PdfDocumentOptions.LiveUrlsEnabled = false;
_memStream.Position = 0;
converter.SavePdfFromHtmlStreamToStream(_memStream, Encoding.UTF8, _baseUrl, _oldFilter);
_oldFilter.Close();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment