我可以创建一个流式传输pdf以供下载的Web服务

我没有太多的Web服务经验,但我认为我有一个问题,Web服务可以很好地工作。

我的公司刚刚购买了一个.net版本的Cete Pdf Merger(伟大的产品顺便说一句)。 我们使用.Net和asp代码,并且将来也可能使用java。

场景是一种技术(asp,java,.net)将具有原始数据列表,例如字段名称和值的数组。 此数据将发布到Web服务,然后打开给定的pdf,将pdf表单字段与字段名称数组匹配,获取相应的值,将其填充到pdf上,然后将pdf流回用户进行下载。

这看起来可行吗? 任何问题,我可能会遇到你知道的? 任何首选的方法(Web服务,WCF,???)

简答:WCF

更长的答案是:您似乎在区分WCF和“Web服务”。 也许您正在考虑旧的“.asmx”Web服务。 Microsoft现在认为它们是“遗留软件”,并建议您使用WCF进行所有新的Web服务开发。

如果您要使用.NET的Web服务,我建议使用WCF(Windows Communication Foundation)。

WCF (MSDN)是一个不错的选择,但如果您想提供用户界面(例如输入字段值的HTML表单),您可以使用常规Web表单并使用HTTP发布到页面,返回通过使用适当的MIME类型传输响应来输出PDF。

这听起来像个好主意。 您可以使用.asmx Web服务(其他人可能会看不起.asmx)。

建议像这样创建一个web方法:

(这个例子在边缘粗糙,但它只是描述一般的想法)

[WebMethod] public void CreatePdfIncomeTax(IncomeTaxForm itf) { // integrate with Cete Pdf Merger string fileName = SomePdfMerging(itf); Response.ContentType = "application/pdf"; Response.AddHeader("Content-Disposition", "inline; filename=foo.pdf"); Response.WriteFile(path); Response.Flush(); Response.End(); } ... // a class that the caller would populate as param to the webmethod public class IncomeTaxForm { public string FirstName {get;set;} public string AddressLine1 {get;set;} ... } 

我已经做了非常精确的事情,但使用Aspose作为PDF组件。 我们使用的是.asmx网络服务,而不是我想要的WFC。 我当然同意其他所有人说WCF是要走的路。 我知道我会更喜欢这个,但不幸的是,这个决定不是我的决定。