0

Windows 2003 サーバーで実行されている ASP.NET アプリケーションから ASP.NET/Mono MVC2 ビューを印刷する方法を探しています。ASP.NET MVC の Programmatically "hello world" default SERVER-side printer に基づいて、以下のコードを試しました

しかし、これは生のhtml文字列を出力します。フリーソフトウェアを使用して書式設定されたテキストとしてビューを印刷するには?

注文レイアウトは、html 部分ビューとして作成されます。フォーマットされた順序を印刷する他の自由な方法があれば、html の代わりに他の形式でレイアウトを作成できます。

Windows Forms WebBrowser コントロールを使用する必要があるのは、私が見つけた無料のソリューションだけですが、これは Mono で実行されている MVC2 アプリケーションでも妥当ではないようです。

Rotativa ( http://nuget.org/packages/Rotativa/ ) を調べましたが、html を印刷できないようです。

using System.Drawing;
using System.Drawing.Printing;
using System.IO;
using System.Web.Mvc;

public class PrintController : Controller
{
    string body;
    public ActionResult Complete()
    {
        body = RenderViewToString<TestOrder>("~/Views/Checkout/Order.ascx", new TestOrder() { Number = "1" });
        PrintOrder();
        return View("PaymentComplete");
    }

    void PrintOrder()
    {
        // https://stackoverflow.com/questions/12229823/programmatically-hello-world-default-server-side-printer-in-asp-net-mvc
        var doc = new PrintDocument();
        doc.PrinterSettings.PrinterName = "HP Laserjet 1200";
        doc.PrintPage += new PrintPageEventHandler(ProvideContent);
        doc.Print();
    }

    void ProvideContent(object sender, PrintPageEventArgs e)
    {
        e.Graphics.DrawString(body,
          new Font("Arial", 12),
          Brushes.Black,
          e.MarginBounds.Left,
          e.MarginBounds.Top);
    }

    string RenderViewToString<T>(string viewPath, T model)
    { // https://stackoverflow.com/questions/483091/render-a-view-as-a-string
        ViewData.Model = model;
        using (var writer = new StringWriter())
        {
            var view = new WebFormView(viewPath);
            var vdd = new ViewDataDictionary<T>(model);
            var viewCxt = new ViewContext(ControllerContext, view, vdd, new TempDataDictionary(), writer);
            viewCxt.View.Render(viewCxt, writer);
            return writer.ToString();
        }
    }
}

public class TestOrder
{
    public string Number;
}
4

1 に答える 1

-1

iTextSharp を使用した HTML から PDF への変換に関する記事があります: http://www.dotnetspider.com/resources/43589-How-convert-HTML-PDF-ASP-NET.aspx

于 2013-04-09T19:20:06.913 に答える