Chicchina81 Ответов: 0

Как распечатать 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 (), что необходимо для того, чтобы вложение опустилось.

0 Ответов