Как распечатать pdf-файл в ASP.NET с iTextsharp
Привет,
Я пытаюсь распечатать pdf-файл. На самом деле я показываю его пользователю с ответом, и он отлично работает. Я хотел бы показать даже диалог печати (или печать напрямую), потому что мне нужно принудительно напечатать 2 копии.
Это мой код, но он не работает, ничего не происходит (после ответа)!
TestPdf-это метод внутри страницы aspx, который находится внутри IFrame на другой странице. Главная страница вызывает ведомое устройство, передающее bytearray pdf-файла. Затем в IFrame отображается pdf-файл, но не диалоговое окно печати.
- Что случилось?
Заранее спасибо
Что я уже пробовал:
protected void TestPdf(byte[] fileStream) { var outputStream = new MemoryStream(); var pdfReader = new iTextSharp.text.pdf.PdfReader(fileStream); var pdfStamper = new iTextSharp.text.pdf.PdfStamper(pdfReader, outputStream); pdfStamper.SetPageAction(iTextSharp.text.pdf.PdfWriter.PAGE_OPEN, new iTextSharp.text.pdf.PdfAction(iTextSharp.text.pdf.PdfAction.PRINTDIALOG), 1); var writer = pdfStamper.Writer; writer.AddJavaScript(GetAutoPrintJs()); pdfStamper.Close(); var content = outputStream.ToArray(); outputStream.Close(); Response.ContentType = "application/pdf"; Response.BinaryWrite(content); Response.End(); outputStream.Close(); outputStream.Dispose(); } protected string GetAutoPrintJs() { var script = new StringBuilder(); script.Append("var pp = getPrintParams();"); script.Append("pp.interactive= pp.constants.interactionLevel.full;"); script.Append("pp.NumCopies=eval(2);"); script.Append("print(pp);"); return script.ToString(); }
ZurdoDev
Позволяет ли iTextSharp указать, сколько копий? Вам нужен какой-нибудь код C#, который выглядит как JavaScript, но не будет работать, когда вы ответите.End (), что необходимо для того, чтобы вложение опустилось.