Драйвер принтера не был указан с TSCLib.dll

1

Я получаю драйвер принтера, если не была указана ошибка при печати с помощью метода TSCLIB.dll openport. Мой код выглядит так

public partial class TSCPrint : Form
{
    [DllImport("TSCLIB.dll", EntryPoint = "about", SetLastError = true, CharSet = CharSet.Auto)]
    public static extern bool about();

    [DllImport("TSCLIB.dll", EntryPoint = "openport", SetLastError = true, CharSet = CharSet.Auto)]
    public static extern bool openport(string printer);

    [DllImport("TSCLIB.dll", EntryPoint = "barcode")]
    public static extern int barcode(string x, string y, string type,
    string height, string readable, string rotation,
    string narrow, string wide, string code);

    [DllImport("TSCLIB.dll", EntryPoint = "clearbuffer")]
    public static extern int clearbuffer();

    [DllImport("TSCLIB.dll", EntryPoint = "closeport")]
    public static extern int closeport();

    [DllImport("TSCLIB.dll", EntryPoint = "downloadpcx")]
    public static extern int downloadpcx(string filename, string image_name);

    [DllImport("TSCLIB.dll", EntryPoint = "formfeed")]
    public static extern int formfeed();

    [DllImport("TSCLIB.dll", EntryPoint = "nobackfeed")]
    public static extern int nobackfeed();

    [DllImport("TSCLIB.dll", EntryPoint = "printerfont")]
    public static extern int printerfont(string x, string y, string fonttype,
    string rotation, string xmul, string ymul,
    string text);

    [DllImport("TSCLIB.dll", EntryPoint = "printlabel")]
    public static extern int printlabel(string set, string copy);

    [DllImport("TSCLIB.dll", EntryPoint = "sendcommand")]
    public static extern int sendcommand(string printercommand);

    [DllImport("TSCLIB.dll", EntryPoint = "setup")]
    public static extern int setup(string width, string height,
    string speed, string density,
    string sensor, string vertical,
    String offset);

    [DllImport("TSCLIB.dll", EntryPoint = "windowsfont")]
    public static extern int windowsfont(int x, int y, int fontheight,
    int rotation, int fontstyle, int fontunderline,
    string szFaceName, string content);
    public TSCPrint()
    {
        InitializeComponent();
        about();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        openport("USB003");
        setup("100", "63.5", "4", "8", "0", "0", "0"); // Setup the media size and sensor type info
        clearbuffer(); // Clear image buffer
        barcode("100", "100", "128", "100", "1", "0", "2", "2", "Barcode Test"); // Drawing barcode
        printerfont("100", "250", "3", "0", "1", "1", "Print Font Test"); // Drawing printer font
        windowsfont(100, 300, 24, 0, 0, 0, "ARIAL", "Windows Arial Font Test"); // Draw windows font
        //downloadpcx ("UL.PCX", "UL.PCX"); // Download PCX file into printer
        //sendcommand ("PUTPCX 100,400, /" UL.PCX / ""); // Drawing PCX graphic
        printlabel("1", "1"); // Print labels
        closeport(); // Close specified printer driver

    }
}
}
  • 0
    Я немного опоздал, но я нашел эту тему сейчас. У вас все еще есть эта проблема?
  • 0
    с C # да, но тот же код работал для VisualBasic, поэтому я добавил класс библиотеки VB.NET в мой проект. Тем не менее, если вы знаете, что не так с C #, пожалуйста, дайте мне знать. Спасибо!!
Показать ещё 3 комментария
Теги:

1 ответ

2
Лучший ответ

Ваш класс выглядит отлично. Я использую тот же класс, но без SetLastError и без CharSet about методе openport и openport. Я не знаю, что это делает.

Вышеупомянутая ошибка вызывается, когда указанный принтер не существует.

Убедитесь, что ваш принтер называется "USB003".

openport("RS11");

В моем примере принтер "RS11" должен существовать. В противном случае это приведет к ошибке.

Изображение 174551

Итак, перейдите в Control Panel > All Control Panel Items > Devices and Printers и убедитесь, что ваш принтер существует в Printers and Faxes.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню