ASP.NET / Mono MVC2 应用程序用于以 PDF 格式创建和邮寄发票、订单和其他文档。
每个客户都需要不同的文档布局和文档中的徽标。
这种布局应该很容易定制。
如何使用免费软件实现这一点?应用程序中应该有报告生成器或其他东西,以及从设计的布局中创建带有徽标的 pdf 文件的方式。
ASP.NET / Mono MVC2 应用程序用于以 PDF 格式创建和邮寄发票、订单和其他文档。
每个客户都需要不同的文档布局和文档中的徽标。
这种布局应该很容易定制。
如何使用免费软件实现这一点?应用程序中应该有报告生成器或其他东西,以及从设计的布局中创建带有徽标的 pdf 文件的方式。
我有同样的需求,并且一直在努力为此找到理想的解决方案。我目前正在使用iTextSharp,这似乎是一个流行的选择。它使您可以将 html 页面呈现为 pdf。我发现它对 css 样式的支持有限,这会让你很难得到你想要的东西。以下是如何在 mvc 中使用它的一些示例代码:
public ActionResult CreatePdfFromView(YourType yourViewData)
{
var htmlViewRenderer = new HtmlViewRenderer();
string htmlText = htmlViewRenderer.RenderViewToString(this, "YourViewName", yourViewData);
byte[] renderedBuffer;
using (var outputMemoryStream = new MemoryStream())
{
using (Document document = new Document())
{
PdfWriter writer = PdfWriter.GetInstance(document, outputMemoryStream);
writer.CloseStream = false;
document.Open();
iTextSharp.text.Image pic = iTextSharp.text.Image.GetInstance(Server.MapPath("/Content/img/Your_Logo.png"));
pic.ScaleToFit(190, 95);
pic.SetAbsolutePosition(200, 730);
document.Add(pic);
try
{
StringReader sr = new StringReader(htmlText);
XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, sr);
}
catch (Exception e)
{
throw;
}
}
renderedBuffer = new byte[outputMemoryStream.Position];
outputMemoryStream.Position = 0;
outputMemoryStream.Read(renderedBuffer, 0, renderedBuffer.Length);
}
return new BinaryContentResult(renderedBuffer, "application/pdf");
}
我会说确保使用 XMLWorkerHelper 而不是 HTMLWorker。我认为您必须单独下载 XML 工作程序。 这是下载页面的链接。.
我用过的另一个,更用于创建 excel 报告的是DoodleReport。这要简单得多。基本上是表格数据转储。不知道你是否也可以做图标。
希望有帮助。好奇看看有没有人有更好的建议。