C# 强制程序设置

C# 强制程序设置,c#,winforms,printing,C#,Winforms,Printing,我制作了一个小型的c#winforms程序,其中包括打印条形码。在它运行的某些客户端计算机上,其他一些用于打印条形码的软件会覆盖我打印条形码的设置,并且只调整条形码的大小 如果我只为那台机器更改代码,它要么重新定位图像(使其变小),要么将其拉伸到如此之宽,以至于将图像的三分之一切掉。目前,我仅使用打印设置将边距设置为0,并在打印对话框中将纸张模式设置为横向,并且图像大小在打印过程中是固定的(我使用常量)。下面是用户单击“打印”按钮时的代码,以及在其外部定义的两个常量 const int

我制作了一个小型的c#winforms程序,其中包括打印条形码。在它运行的某些客户端计算机上,其他一些用于打印条形码的软件会覆盖我打印条形码的设置,并且只调整条形码的大小

如果我只为那台机器更改代码,它要么重新定位图像(使其变小),要么将其拉伸到如此之宽,以至于将图像的三分之一切掉。目前,我仅使用打印设置将边距设置为0,并在打印对话框中将纸张模式设置为横向,并且图像大小在打印过程中是固定的(我使用常量)。下面是用户单击“打印”按钮时的代码,以及在其外部定义的两个常量

    const int barcodeX = 570;
    const int barcodeY = 135;

    private void Print_Click(object sender, EventArgs e)
    {
        DocPrint.DocumentName = "Document";
        elements = 0;
        PrintDialog.Document = DocumentDrucker;     

        DocPrint.DefaultPageSettings.Landscape = true;
        DocPrint.DefaultPageSettings.Margins.Top = 0;
        DocPrint.DefaultPageSettings.Margins.Left = 0;
        DocPrint.DefaultPageSettings.Margins.Right = 0;
        DocPrint.DefaultPageSettings.Margins.Bottom = 0;

        //DocumentDrucker.OriginAtMargins = false;

        if (PrintDialog.ShowDialog() == DialogResult.OK)
            DocPrint.Print();
    }
还包括在打印过程中编码和打印条形码的行。条形码点是条形码在纸张上的位置

b.Encode(TYPE.CODE128A, "SBD" + currentItem.Text.Substring(0, 3) + currentItem.Text.Substring(4), Color.Black, Color.Transparent, barcodeX, barcodeY);
graphic.DrawImage(b.EncodedImage, barcodePoint);
该程序在任何其他情况下都可以正常运行,因此我已经确定了问题所在,我只是不知道如何绕过其他软件的设置。我已经重新安装了打印机的驱动程序(没有成功),并以不同的用户身份登录到同一台计算机上,这使我的程序正常工作。所以它和安装在上面的软件有关,我不知道是什么。 起初我认为这是驱动程序和操作系统的问题,但我在其他计算机上试过,效果也不错。该问题仅在使用该软件的计算机上存在

有没有办法让我的程序强制打印条形码图像的设置,因为机器上安装的软件总是使用自己的设置?或者确保我的代码中的设置不会更改

卸载软件不是一个选项,因为它用于其他进程


编辑:我已从我的用户登录(无软件)和目标计算机用户(均在同一台计算机上)运行该程序。两种情况下的设置都相同,唯一不同的是在目标机器上安装了软件。有哪些方法可以确保强制执行我的设置,而不是由X程序覆盖它们?

此计算机上显示的打印机分辨率是否完全不同?不,我在同一台计算机上使用过我的程序,只是在不同的用户上使用过(没有安装软件),它工作正常。检查
PrinterSettings ps=new PrinterSettings()的所有参数当在您的用户和有问题的用户下运行时,好的,我将尝试并相应地编辑问题。在我再次测试之前,我应该或者可以做些什么?没有办法以编程方式强制执行程序的设置吗?我已经确定了有问题的软件,但我不知道如何修复它。基本上,目标机器安装了一些P-Touch标签打印机,软件总是调整我的条形码大小以适应标签。无法卸载该软件,因为它用于其他进程。如何确保它不会干扰我的程序/我的程序会覆盖P-Touch软件设置或模板?