C# 如何在全尺寸纸张上打印位图图像

C# 如何在全尺寸纸张上打印位图图像,c#,printing,margin,C#,Printing,Margin,我目前正在创建一个1632x156(17x11,96 dpi)像素的位图。我想在一张11英寸x 17英寸的纸上打印这张图像 我可以在Windows Photo Viewer中打开此文件并将其完美打印出来,但是当我使用c#中的打印功能时,总会出现一个小的边距,因此它会将我的图像移动到不适合整个页面的位置。 这是我的打印文档代码设置 Image glControlBits; private void PrintImage() { //print the doc

我目前正在创建一个1632x156(17x11,96 dpi)像素的位图。我想在一张11英寸x 17英寸的纸上打印这张图像

我可以在Windows Photo Viewer中打开此文件并将其完美打印出来,但是当我使用c#中的打印功能时,总会出现一个小的边距,因此它会将我的图像移动到不适合整个页面的位置。 这是我的打印文档代码设置

    Image glControlBits;
    private void PrintImage()
    {
        //print the document
        PrintDocument pd = new PrintDocument();
        pd.PrintPage += pd_PrintPage;
        pd.DefaultPageSettings.PaperSize = new PaperSize("PDI", 1100, 1700);
        pd.DefaultPageSettings.Margins = new Margins(0, 0, 0, 0);
        pd.DefaultPageSettings.Landscape = true;
        pd.OriginAtMargins = true;
        //pd.DefaultPageSettings.PrintableArea = new RectangleF(0, 0, viewSize.X, viewSize.Y);
        //pd.DefaultPageSettings.HardMarginX = 0;
        //pd.DefaultPageSettings.HardMarginY = 0;
        //pd.DefaultPageSettings.PrinterResolution
        PrintDialog pdialog = new PrintDialog();
        pdialog.Document = pd;
        if (pdialog.ShowDialog() == DialogResult.OK)
        {
            //set the print image to be the bitmap of the glcontrol
            glControlBits = GrabScreenshot();
            //save the bitmap, for debugging purposes
            glControlBits.Save(@"C:\Users\Shane\Desktop\testbitmap.bmp");
            pd.Print();
        }
        else return;
    }

我认为问题可能在于硬边距值是由打印机设置的,硬边距值为25,硬边距值为16。是否有办法将这些设置为零,以便打印时无边距偏移?谢谢

您似乎没有使用PageBorderless属性。请尝试使用中所示的属性


如果问题仍然存在,请告诉我。

打印机设置硬边距是有原因的。对于一些印刷商来说,他们真的是认真的

特别是对于激光打印机,通常会有一个来自引擎的页眉检测信号,打印机控制器将获得该信号,并在开始点亮视频电路(说真的,它被称为视频电路,因为它的工作原理与CRT显示器相同)并在纸张上写入电荷的时间。如果开始得太快,您将在第一条扫描线中触及内部构件。扫描线是通过在页面上扫描光束并将FIFO输出馈入光束控制电路来写入的。光束在纸上所能覆盖的面积有限,而且有一个硬限制。你不能改变它


喷墨打印机可以很好地在一页上打印L/R,但它们不能像纸张那样管理t/B通常有机械原因(例如)没有足够牢固地固定在压盘上,无法将墨水喷到顶部3 mm左右。

因此,如何复制windows photo viewer用于将图像打印到整页的打印行为根据文档,许多打印机不支持此属性。我也不知道如何实现这个功能