Windows 2003 서버에서 실행되는 ASP.NET 응용 프로그램에서 ASP.NET/Mono MVC2보기를 인쇄하는 방법을 찾고 있습니다. Programmatically "hello world" default SERVER-side printer in ASP.NET MVC서버에서 ASP.NET MVC2보기를 인쇄하는 방법
을 기반으로 아래 코드를 시도했지만 원시 html 문자열을 출력합니다. 자유 소프트웨어를 사용하여 서식이 지정된 텍스트로보기를 인쇄하는 방법은 무엇입니까?
주문 레이아웃은 html 부분보기로 생성됩니다. 서식있는 주문을 인쇄하는 다른 무료 방법이있는 경우 html 대신 다른 양식으로 레이아웃을 만들 수 있습니다.
Windows Forms WebBrowser 컨트롤을 사용하려면 무료 솔루션 만 필요하지만 Mono에서도 실행되는 MVC2 응용 프로그램에서는 적합하지 않습니다.
나는 Rotativa (http://nuget.org/packages/Rotativa/)를 들여다 보았지만 html을 인쇄 할 수없는 것처럼 보입니다. iTextSharp를 사용하여 PDF로 변환 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;
}
봐 http://stackoverflow.com/questions/3696842/print-html-in-c-done –
에 감사합니다. 참조 된 질문은 WinForms WebBrowser 컨트롤을 사용합니다. 이 기능은 IIS 서비스에서 실행되는 ASP.NET MVC2 응용 프로그램에서 작동합니까? WinForms 참조를 MVC2 프로젝트에 실제로 추가해야합니까? – Andrus