Код | [DllImport("kernel32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)] private static extern void Sleep(int dwMilliseconds);
const PDF_PRINTERNAME = "PDF Writer - bioPDF"; const PRINTER_PROGID = "bioPDF.PDFPrinterSettings"; private short PrinterIndex(string printername) { short i = 0;
for (i = 0; i <= Printers.Count - 1; i++) { //для оператора Like в шарпе нет эквивалента или он мне не известен //написал самое близкое
if ((Printers(i).DeviceName.ToLower() == printername.ToLower()) { PrinterIndex() = i; return; } } return -1; }
private void cmdPrint_Click() { short prtidx = 0; object obj = null;
// -- Configure the PDF print job obj = Interaction.CreateObject(PRINTER_PROGID); obj.SetValue("Output", "<desktop>\\myfile.pdf"); obj.SetValue("ConfirmOverwrite", "no"); obj.SetValue("ShowSaveAS", "never"); obj.SetValue("ShowSettings", "never"); obj.SetValue("ShowPDF", "yes"); obj.SetValue("RememberLastFileName", "no"); obj.SetValue("RememberLastFolderName", "no"); obj.WriteSettings(true);
// -- Find the index of the printer prtidx = PrinterIndex(PDF_PRINTERNAME); if (prtidx < 0) Err.Raise(1000, , "No printer was found by the name of '" + PDF_PRINTERNAME + "'.");
// -- Set the current printer Printer = Printers(prtidx);
// -- Print something Printer.FontSize = 50; Printer.Print("Hello VB6..."); Printer.EndDoc();
// -- Wait for runonce settings file to disappear string runonce = null; runonce = obj.GetSettingsFileName(true); while (!string.IsNullOrEmpty(FileSystem.Dir(runonce, Constants.vbNormal))) { Sleep(100); } }
|
Точноть перевода не гарантирую, если что не понятно или не сработает - пиши.
Добавлено через 2 минуты и 38 секунд Комент на 11-12 строках - мой. В 17, возможно надо написать |