如何在 C# 中设置打印 DPI

This article was translated from English: Does it need improvement?
Translated
View the article in English

DPI(每英寸点数)控制着打印分辨率——即打印机在每英寸纸张上放置的墨点数量。 更高的 DPI 能呈现更清晰的文本和更平滑的图像,但会增加处理时间和碳粉消耗。 较低的 DPI 打印速度更快,适用于内部草稿。 通过编程方式设置 DPI 可确保每项打印任务都符合应用程序要求的质量标准,而与用户的默认打印机配置无关。

IronPrintPrintSettings 类上提供了 Dpi 属性。 我们将它设置为一个整数值,将设置传递给 Printer.Print(),文档便会以指定的分辨率打印出来。 默认分辨率为 300 DPI,符合商业印刷标准。

快速入门:设置打印 DPI

  1. 通过 NuGet 安装 IronPrint:Install-Package IronPrint
  2. 在文件中添加 using IronPrint;
  3. 创建一个 PrintSettings 对象
  4. Dpi 设置为所需的分辨率(例如 300、600、1200)
  5. 将设置传递给 Printer.Print()Printer.ShowPrintDialog()
  1. 使用 NuGet 包管理器安装 https://www.nuget.org/packages/IronPrint

    PM > Install-Package IronPrint
  2. 复制并运行这段代码。

    using IronPrint;
    
    // Print a PDF at 600 DPI for high-quality output
    Printer.Print("report.pdf", new PrintSettings
    {
        Dpi = 600
    });
  3. 部署到您的生产环境中进行测试

    通过免费试用立即在您的项目中开始使用IronPrint

    arrow pointer

如何在 C# 中设置打印 DPI?

PrintSettings 上的 Dpi 属性接受任何正整数。 默认值为 300,这是商务文档的标准分辨率。 实际打印所用的 DPI 可能受物理打印机性能的限制——如果我们在最高支持 600 DPI 的打印机上设置 1200 DPI,打印机将使用其支持的最高分辨率。

:path=/static-assets/print/content-code-examples/how-to/set-the-dpi/set-the-dpi-office-and-high-res-dpi.cs
using IronPrint;

// Standard office quality (300 DPI)
var officeSettings = new PrintSettings
{
    Dpi = 300
};
Printer.Print("invoice.pdf", officeSettings);

// High-resolution output (600 DPI)
var highResSettings = new PrintSettings
{
    Dpi = 600
};
Printer.Print("photo-proof.png", highResSettings);
Imports IronPrint

' Standard office quality (300 DPI)
Dim officeSettings As New PrintSettings With {
    .Dpi = 300
}
Printer.Print("invoice.pdf", officeSettings)

' High-resolution output (600 DPI)
Dim highResSettings As New PrintSettings With {
    .Dpi = 600
}
Printer.Print("photo-proof.png", highResSettings)
$vbLabelText   $csharpLabel

在原生 .NET 环境中,要控制打印分辨率,需要创建 PrintDocument 对象,访问 DefaultPageSettings.PrinterResolution,处理 PrintPage 事件,并使用 Graphics.DrawImage() 手动渲染内容。 此内容包含 15–25 行标准代码。 IronPrint 将其简化为设置对象上的一个整数属性。

不同打印任务应使用多少 DPI?

选择合适的 DPI 取决于内容类型和用途。 分辨率越高并不一定越好——对于文字密集型文档,它会增加打印缓冲区大小和打印时间,却无法带来肉眼可见的改善。

DPI 最适合 备注
72–150 内部草稿、校样、测试打印 输出速度快,碳粉消耗低
300 商业文件、发票、报告 IronPrint 默认; 标准商业质量
600 营销材料、图表、图表 图像清晰度显著提升,细线呈现更细腻
1200+ 摄影、档案管理、美术 需要兼容的打印机; 大型打印缓冲文件

对于大多数应用场景,300 DPI 在质量与性能之间提供了最佳平衡。 建议从默认设置开始,仅当输出效果在图像清晰度或细节表现方面需要明显改善时,再适当提高设置。

如何将 DPI 与其他打印PDF设置结合使用?

DPI 与其他 PrintSettings 属性协同工作,共同定义完整的打印作业。 我们可以在同一个对象中配置纸张尺寸、方向、页边距、份数和灰度模式。

:path=/static-assets/print/content-code-examples/how-to/set-the-dpi/set-the-dpi-combine-dpi-with-settings.cs
using IronPrint;

var settings = new PrintSettings
{
    Dpi = 600,
    PaperSize = PaperSize.A4,
    PaperOrientation = PaperOrientation.Landscape,
    PaperMargins = new Margins(10, 10, 10, 10),
    NumberOfCopies = 2,
    Grayscale = true
};

Printer.Print("quarterly-dashboard.pdf", settings);
Imports IronPrint

Dim settings As New PrintSettings With {
    .Dpi = 600,
    .PaperSize = PaperSize.A4,
    .PaperOrientation = PaperOrientation.Landscape,
    .PaperMargins = New Margins(10, 10, 10, 10),
    .NumberOfCopies = 2,
    .Grayscale = True
}

Printer.Print("quarterly-dashboard.pdf", settings)
$vbLabelText   $csharpLabel

Grayscale = true 设置为 600 DPI 可生成清晰的单色输出,非常适合图表和数据表。 PaperMargins 处的数值单位为毫米。

如何让用户在打印对话框中调整 DPI?

当我们将 PrintSettings 传递给 Printer.ShowPrintDialog() 时,对话框将以我们预设的 DPI 打开。 用户可以在打印前接受该设置或调整分辨率。

:path=/static-assets/print/content-code-examples/how-to/set-the-dpi/set-the-dpi-dialog-with-dpi-preset.cs
using IronPrint;

// Pre-select 600 DPI, but let the user override
var settings = new PrintSettings
{
    Dpi = 600,
    PaperSize = PaperSize.Letter
};

Printer.ShowPrintDialog("design-proof.pdf", settings);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

对于非阻塞式 UI 场景,Printer.ShowPrintDialogAsync() 接受相同的参数,并保持应用程序的响应性。该对话框允许用户在打印前核对 DPI 是否与打印机支持的分辨率一致——这在切换 600 DPI 办公激光打印机和 1200 DPI 照片打印机时非常有用。 对于无需用户交互的完全自动化工作流,请改用 Printer.Print() 进行静默打印

下一步

DPI 是 PrintSettings 对象上的一个整数参数——请将其设置为符合每个打印作业的质量要求。 商业文档起始字数为 300,图文并茂的输出内容则需增加至 600 字或更多。

请查阅各可用属性的打印设置指南Printer 类 API 参考文档以了解完整的方法接口,以及代码示例页面获取可直接运行的代码片段。 IronPrint 教程详细介绍了完整的打印生命周期,变更日志则记录了最近的更新。

立即开始 30天试用,在实际项目中测试 DPI 设置。 准备就绪后,请查看起价为 749 美元的许可方案

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 38,930 | 版本: 2026.4 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronPrint
运行示例 观看您的文档打到打印机上。