代码之家  ›  专栏  ›  技术社区  ›  jason

我能创建一个流式下载PDF的Web服务吗

  •  3
  • jason  · 技术社区  · 15 年前

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

    我公司刚刚购买了一个.NET版本的CETEPDF合并(伟大的产品btw)。我们同时使用.NET和ASP.ASP代码,将来也可能使用Java。

    场景是一个技术(ASP,Java,.NET)将有一个原始数据列表,比如字段名称和值数组。这些数据将被发布到Web服务,然后该服务将打开给定的PDF,将PDF表单字段与字段名数组匹配,获取相应的值,将其填充到PDF上,然后将PDF流返回给用户进行下载。

    这看起来可行吗?我有没有可能碰到你知道的?任何首选的操作方法(Web服务、WCF,???)

    5 回复  |  直到 15 年前
        1
  •  2
  •   John Saunders    15 年前

    简短回答:wcf

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

        2
  •  1
  •   Bernard    15 年前

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

        3
  •  1
  •   jscharf    15 年前

    WCF (msdn)是一个不错的选择,但是如果您希望提供一个用户界面(例如要在字段值中键入的HTML表单),您可以使用常规Web表单并使用http发布到一个页面,通过将响应流式处理为适当的mime类型来返回PDF输出。

        4
  •  1
  •   p.campbell    15 年前

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

    建议创建这样的WebMethod:

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

    [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;}
       ...
    }
    
        5
  •  0
  •   Henric    15 年前

    我已经做了很多准确的事情,但是使用aspose作为PDF组件。我们使用的是.asmx Web服务,而不是我想要的WFC。我肯定会同意其他人的说法,即世界自然基金会是前进的道路。我知道我更愿意这样做,但不幸的是,这不是我的决定。