当前位置: 首页 > 知识库问答 >
问题:

设置打印机在 c 中打印时的设置#

沈飞翔
2023-03-14

几天前,我尝试通过右键单击照片来打印照片。出现一个对话框,用于选择打印机,纸张大小,质量等。我选择“纸张大小 = 合法”。打印机可以在合法尺寸的纸张上打印(我使用的是 HP LaserJet 1020 plus 打印机)。

现在我正在尝试从 C# 打印一些东西,设置纸张大小,但打印机无法打印法律。下面是我的代码。代码有什么错吗?

this.printDocument.PrinterSettings.PrinterName = this.printSetting.PrinterName;
PaperSize pkCustomSize1 = new PaperSize("8.5x13", 1300, 850);
this.printDocument.DefaultPageSettings.PaperSize = pkCustomSize1;
this.printDocument.DefaultPageSettings.PaperSize.RawKind = 119;
printPreviewDialog.Document = printDocument;
printDocument.Print();

private void printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
    Graphics g = e.Graphics;
    Bitmap bm = new Bitmap(300, 3000);
    // Code for bm.
    g.DrawImage(bm, 0, 0);
}

所以问题是,设置纸张大小(和打印机设置)的正确方法是什么?还有一件事,我搜索了打印机的最大可打印区域。我的打印机有最大 A4 尺寸,为什么它在法律上打印?

共有1个答案

华炜
2023-03-14

PrintDocument.PrinterSettings.PaperSize集合具有使用PrintDocument.Printersettings.PrinterName属性设置的打印机支持的所有纸张大小。PrintDocument.PrinterSettings 包含您设置的打印机的各种信息。在需要的地方使用它们。

示例代码:

// do a null check of the return value of GetPaperSize. 5 represent the rawkind of Legal
printdocument.PrinterSettings.DefaultPageSettings.PaperSize = GetPaperSize(5);

private PaperSize GetPaperSize(int rawKind)
{
    PaperSize papersize = null;
    foreach(PaperSize item in printdocument.PrinterSettings.PaperSizes)
    {
        if(item.RawKind == rawKind)
        {
            papersize = item;
            break;
        }
    }
    return papersize;
}

为了回答您的另一个问题,我认为打印机的默认纸张大小设置为合法。

编辑:

每台打印机(硬件设备)都有自己的物理限制,定义为硬边距。Adobe PDF或Cute PDF等软件打印机没有这样的限制。不能超出此限制进行打印。无论您设置什么纸张大小,它都将在此限制内打印。这就是为什么您仍然可以打印信件,法律,A4等。(打印机支持的纸张大小,即您可以在打印机中插入的纸张大小),但所有纸张大小的最大可打印区域仍然相同。

 类似资料:
  • 打印复合图稿 复合图是一种单页图稿,与您在插图窗口中看到效果的一致 — 换言之,就是直观的打印作业。复合图像还可用于校样整体页面设计、验证图像分辨率以及查找照排机上可能发生的问题(如 PostScript 错误)。 1选择 “文件 ”>“打印 ”。 2从 “打印机 ”菜单中选择一种打印机。若要打印到文件而不是打印机,请选择 “Adobe PostScript® 文件 ”或 “Adobe PDF”。

  • 实际上,我必须实现一个模块,它连接到一个BT标准打印机,并在其中打印。我有一个简单但功能上的例子,它与打印机一起工作。问题是这些文字都是纯文本打印出来的,我还要给它加格式,加粗,改变字号等等...我该怎么做??。我不知道怎么...我使用这个类: 我从另一个类发送数据,因此: 消息是一个字符串变量..那么,如何设置文本格式??,或者至少,更改字体大小...

  • 创建打印预设 如果定期输出到不同的打印机或作业类型,可以将所有输出设置存储为打印预设,以自动完成打印作业。对于要求 “打印 ”对话框中的许多选项设置都一贯精确的打印作业来说,使用打印预设是一种快速可靠的方法。 可以存储和加载打印预设,使其可以轻松备份,或使其可供服务提供商、客户或工作组中的其他人员使用。您可以在 “打印预设 ”对话框中创建并检查打印预设。 ❖执行下列操作之一: 选择 “文件 ”>“

  • 我正在使用PDFBOX,它的留档似乎很少,所以我来这里寻求一些帮助。我正在尝试打印我创建的pdf表单,其中字段由eclipse动态填充。我可以让它导入和打印,但是当我打印时,我设置的字段不会显示(尽管当我将其保存到HDD时会显示)。有人能告诉我打印时设置为可见的设置吗?我看到itext有类似的东西,我希望PDFBox也有。 这是我当前的代码。

  • 问题内容: 我有一个带图标的jLabel,应该打印。但是,我无法将jLabel的图标放大。 这是一些我认为会影响打印尺寸的代码。 那我该如何改变呢?另外,如何在打印过程中放置单选按钮?这是因为我想一起打印带有标签的单选按钮。 这是我使用按钮打印标签的方式: 我可以这样吗?: 更新: 我想我必须在这里添加一些内容以打印另一个组件: Please help. Thanks 问题答案: 因此,基于“ 打

  • 我正在处理一个JavaFX项目,其中有一堆静态HTML&JS页面,我正在加载,用户可以签出并单击链接等。 现在,通常当我们使用或之类的浏览器时,调用print命令完成打印任务。 但在中发生的情况不一样。我如何在JavaFX的网页呈现机制中启用打印。 以下是我到目前为止的代码: 任何建议或指示都会很好。谢谢你..:-)

  • 如果定期输出到不同的打印机或作业类型,可以将所有输出设置存储为打印预设,以自动完成打印作业。对于要求“打印”对话框中的许多选项设置都一贯精确的打印作业来说,使用打印预设是一种快速可靠的方法。 创建打印预设 如果定期输出到不同的打印机或作业类型,可以将所有输出设置存储为打印预设,以自动完成打印作业。对于要求“打印”对话框中的许多选项设置都一贯精确的打印作业来说,使用打印预设是一种快速可靠的方法。 可

  • setPrintedPortrait(): self 实例 $config = ['path' => './tests']; $excel = new \Vtiful\Kernel\Excel($config); ​ $excel->fileName('printed_portrait.xlsx', 'sheet1') ->setPrintedPortrait() // 设置打印方向为