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

你用什么软件做信件模板和打印?[关闭]

  •  4
  • softveda  · 技术社区  · 15 年前

    在我们的LOB应用程序中,有一个非常重要的打印信件的用例,这些信件随后被打印出来,并从一个邮递室中寄出(每天数千封)。目前的情况是,信件模板是在word97中创建的,而字段是使用VB.Net版基本上使用wordautomation的应用程序。但现在依靠单词97可不是个好主意。我们只有几台安装了word97的个人电脑,因为公司的其他部门都搬到了office2007。

    现在有什么软件或技术(与.Net兼容)最适合这种情况。做同样的事情,但转移到word2007或PDF或其他东西是不是更好。价格可能不是一个因素。重要的是,信件模板必须由业务用户设计,用于填充占位符的数据来自数据库。

    另外一个好处是,可以导入数百个现有的word97字母模板,而不必从头开始重写。

    8 回复  |  直到 15 年前
        1
  •  2
  •   Francis Dion    13 年前

    Xpertdoc 获取Word文档并在服务器端高效地运行(合并)它们,无论是在本地还是从云端,以实现交互式和批量信函生成。 http://www.youtube.com/watch?v=xbqWiFt5dUA&feature=channel&list=UL Symetra Life Insurance将其与客户关系管理(Dynamics CRM)集成,在3周内集成了450个信函模板。

        2
  •  1
  •   Harv    15 年前

    我的组织也在寻求解决类似的问题,我可以和你们分享我发现的一些事情。我们还没有做到这一点,仍然在设计阶段,所以考虑到这一点以下。

    您的情况还取决于邮件收发室所需的格式—目前他们必须接受Word 97文档,是否也可以接受XML、DOCX、PDF或其他格式?

    有一种商品叫做 Intelledox

    你可以看看 Open XML SDK 它允许您以编程方式生成DOCX(word2007)文件。您的业务用户将在Word中生成一个模板,并将其提供给开发人员,然后开发人员可能会创建一个XSLT。然后在运行时使用此XSLT以编程方式替换基本Word文档模板的内容。这不需要服务器上的Word,只需要SDK中的.NET DLL。这样做的缺点是每次生成新模板时都需要一些开发人员处理。

    我也考虑过报告方法—我们使用SQL Server reporting Services,它可以用来生成合并文档。支持Word、Excel、PDF等导出格式。这样做的缺点是,它通常还需要开发人员来设计报告。你可以部署 SQL Server Reporting Services Report Builder

    如果邮递公司接受XML,您可以向邮递公司提供XSLT文件,只发送数据,而不是组合文档。不确定你使用的印刷厂是否接受这一点,或者你是否需要在内部保留一份完整文件的副本以供审计之用。

    XPS format . 不知道如何设计模板,这可能是编程太重了。

    希望这对你的思考有帮助!

        3
  •  1
  •   Doobi    15 年前

    或者,您可以考虑避开office,直接使用wpf,使用商业富文本编辑器。

        4
  •  0
  •   Sorantis    15 年前

    嗯,对于所有类型的报告,我都使用了Crystal Reports,它可以让您轻松地从数据库中检索信息并填写表单。你可以使用PDF或HTML格式。

        5
  •  0
  •   Rimmeraj Rimmeraj    15 年前

    我的公司最近刚刚处理了这个问题,我们使用了更新的word2003。

    但这并不意味着不能使用office创建模板。office文件(.docx)是一个zip/压缩的xml文件,可以通过文本操作进行处理。

    假设进程是基于服务器的或者不受监视,我建议 a) 将所有模板升级到office文件(.docx)。 c) 编写或查找一个程序,该程序可以获取(.docx)文件、解压缩它们并替换合并字段。注意这个答案取决于模板的复杂性。有许多程序可以处理文本替换等。

        6
  •  0
  •   d4nt    15 年前

    几个月前,我们在我的公司建造了一些非常相似的东西。我们用了一个叫做 DocIO by Syncfusion . 用户使用MS Word(2003或2007)创建普通文档,其中包含标准邮件合并字段。这些文档随后被上传并存储在应用程序的数据库中。然后,我们使用DocIO库进行邮件合并,传入要合并的值的数据表:

    byte[] templateDocument = . . .
    DataTable data = . . .
    Stream templateDocStream = new MemoryStream(templateDocument);
    mailmergeDoc = new DocIO.WordDocument(templateDocStream);
    mailmergeDoc.MailMerge.Execute(data);
    

    Response.AddHeader("Content-Disposition", "attachment; filename=merged.doc");
    doc.Save(Response.OutputStream, Syncfusion.DocIO.FormatType.Doc);
    Response.End();
    
        7
  •  0
  •   Twelve47    15 年前

    根据字母布局的复杂性,WPF可能是一个不错的选择。

    它是.NET框架的一部分,因此您不必依赖任何第三方库或应用程序,这些库或应用程序将来可能不会更新。希望能避免重复使用Office97的问题。

        8
  •  -1
  •   Aen Sidhe    15 年前