【发布时间】: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