private static void WritePrinter(SafePrinter printer, Stream stream) { stream.Seek(0, SeekOrigin.Begin); const int bufferSize = 1048576; var buffer = new byte[bufferSize]; int read; while ((read = stream.Read(buffer, 0, bufferSize)) != 0) { printer.WritePrinter(buffer, read); } }
private static void PagePrinter(SafePrinter printer, Stream stream) { printer.StartPagePrinter(); try { WritePrinter(printer, stream); } finally { printer.EndPagePrinter(); } }
private static void DocPrinter(SafePrinter printer, string documentName, string dataType, Stream stream) { var di1 = new DOC_INFO_1 { pDataType = dataType, pDocName = documentName, }; printer.StartDocPrinter(di1); try { PagePrinter(printer, stream); } finally { printer.EndDocPrinter(); } }
private static bool IsXPSDriver(SafePrinter printer) { var files = printer.GetPrinterDriverDependentFiles(); return files.Any(f => f.EndsWith("pipelineconfig.xml", StringComparison.InvariantCultureIgnoreCase)); }