【问题标题】:Printing PDF without displaying them but displaying the printdialog打印 PDF 而不显示它们但显示打印对话框
【发布时间】:2014-07-24 00:17:44
【问题描述】:

点击打印按钮,我必须打印一个 pdf 文档。我还需要显示打印对话框,但不应该向用户显示实际的 pdf。并且根据选择的打印对话框属性,pdf 应该在用户选择的打印机中打印。

对于生成的 pdf,我可以使用以下代码添加 printdialog 属性:-

  writer.SetOpenAction(new PdfAction(PdfAction.PRINTDIALOG));

但我无法在选择按钮时打印 pdf。你能不能给我一些指导来实现这一点。

完整代码:-(PDF 作为内存流传递给打印按钮视图)。

using (MemoryStream m1 = new MemoryStream())
{
    // MemoryStream m1 = new MemoryStream();
    Int32 i = 0;
    PdfWriter writer = PdfWriter.GetInstance(document, m1);
    document.Open();
    PdfContentByte content = writer.DirectContent;

    document.NewPage();

    PdfImportedPage page = writer.GetImportedPage(reader, i + 1);
    content.AddTemplate(page, 0, 0);
    writer.SetOpenAction(new PdfAction(PdfAction.PRINTDIALOG));
    document.Close();

    return m1;

}

【问题讨论】:

  • writer.SetOpenAction(new PdfAction(PdfAction.PRINTDIALOG)) 行是对 PDF 渲染器的提示建议,您希望在打开时显示打印对话框。此提示的实现是可选的。 iTextSharp 真的与打印无关,因为它不是渲染器。所以第一个问题是,您使用的是什么 PDF 渲染器? PDF 标准中没有关于“不显示 PDF”的任何内容,这必须特定于您使用的任何渲染器。

标签: c# pdf printing itextsharp


【解决方案1】:

您可以使用 Ghostscript 打印 pdf 文件。

如果您需要 .NET 的 Ghostscript 包装器,您可以查看 Ghostscript.NET 库。

可在此处找到通过 Ghostscript.NET 打印的示例:https://ghostscriptnet.codeplex.com/discussions/470946

打印对话框是一个普通对话框,您可以在此处找到更多关于如何从 .NET 显示打印对话框的信息:Show Print Dialog before printing

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 2019-03-27
    • 1970-01-01
    相关资源
    最近更新 更多