小编Ini*_*ech的帖子

PDF报告生成

编辑:我使用ABCpdf完成了这个项目.对于任何有兴趣的人,我喜欢这个产品,他们的支持是A +.我在ABC - > PDF解决方案中列为"Con"的所有内容在ABCpdf中都很容易实现.


我一直负责创建一个数据驱动的pdf报告.在审查了大量选项之后,我将其缩小到2.我需要你们所有人来帮助我做出决定,或者提供我没有考虑过的替代方案.以下是要求:

  1. 100%数据驱动
  2. 最终PDF(HTML中的停止是好的,只要它被转换)
  3. 可以使用多组数据运行(布局总是相同,数据是可变的)
  4. 包含正常的分析样式副本(使用html标记保存在DB中)
  5. 包含表(在运行时生成表的数据)
  6. 每页上的页眉/页面#
  7. 目录
  8. .NET(VB或C#)
  9. 很快完成

现在,由于报告将使用多组数据生成,我认为加盖的pdf模板不会起作用,因为我不知道报告的某一部分可以使用多长时间或多少页要求.

所以,我认为我最好的选择是:

  1. 使用类似iText的解决方案进行编程创建.
  2. 使用第三方应用程序生成HTML并转换为PDF(ABCPdf是我目前使用的工具)

两种解决方案都有自己的专业和解决方案.

程序化解决方案:

优点:

  1. 灵活
  2. 简单的页面编号/页面标题/目录
  3. 自由

缺点:

  1. 耗时(在iText上面写一层以做我需要的并保持可维护的)
  2. 由于副本已经存储在带有html标记的数据库中,因此我必须在将数据放入pdf之前解析数据,确保我不必将段落分成块,这样我就可以应用粗体,斜体,下划线等等到特定的短语.这看起来像一个庞大的PITA,我希望我对这个假设是错误的.

HTML - > PDF

优点:

  1. 易于从db生成(无需解析)
  2. 许多转换工具
  3. 使用我已经熟悉的技术
  4. 内置"打印预览" - 不是一个请求,但很好

缺点:

(在项目完成后编辑.我的所有假设都不正确,ABCpdf很棒)

1.几乎不可能生成页眉 - 不正确
2.很难生成页码 不正确
3.几乎不可能生成目录 不正确
4.(跨浏览器支持不是骗局;由于其内部,我可以决定使用什么浏览器)
5.转换工具怪癖 - 可能无法完全转换为在浏览器中呈现 Not True
6.总的来说,我认为格式化HTML将非常困难,因为我希望它出现/转换为PDF . 不对

就是这样 - 我需要社区帮助决定我应该走哪条路.对于我的一些Pro/Con假设,我可能错了.如果是的话,请告诉我.欢迎并赞赏所有的想法和建议.

谢谢

html css pdf-generation itext abcpdf

8
推荐指数
1
解决办法
5516
查看次数

将HTML转换为PDF

参考之前的帖子(PDF报告生成)

我决定使用类似于http://www.alistapart.com/articles/boom的解决方案

对于那些不想阅读任何参考文献的人 - 我正在创建一个报告并将其作为PDF格式化.我决定使用.NET进行HTML - > PDF路由.

所以,让我说我得到的HTML文件完全像我想要的那样.将所述页面转换为PDF的最佳方法是什么?本质上,我希望用户在HTML中看到"预览",然后能够将所述页面转换为PDF.我正在尝试的库是ABCPdf.

我的第一个想法是将页面保存到文件系统,并在页面本身的事件处理程序期间在转换例程中引用它的URL.这有它的问题,因为每次渲染时都要保存页面以准备打印它.实际上,它似乎是后退的.

我的下一个想法是使用页面的渲染方法将页面捕获为字节流并使用它(因为ABCPdf支持转换HTML流.)如果这是我的答案,我迷失了如何实际将它拉下来.有一个"打印"按钮,处理程序将Me.Render()转换为字节流并将其发送到转换例程?这甚至可能吗?

底线 - 一旦页面以精美的HTML呈现,您如何初始化该页面的PDF转换?欢迎使用变通方法和其他解决方案.

我希望我错过一些明显的东西,因为这必须是" 容易的部分 "

.net html pdf pdf-generation abcpdf

5
推荐指数
1
解决办法
2155
查看次数

在维护期间重定向站点访问者

我有一个网站将"关闭"几个小时,而第三方(CC处理器)执行维护(换句话说,该机器仍将在线/运行).我已经创建了一个maintenance.aspx页面.首先,我只是将新页面添加为IIS(Server 2003,IIS 6.0)中的默认文档,但这仍然有可能让某人直接导航到真正的登录页面.

有没有办法将给定站点中的所有页面重定向到新的维护页面.此外,该网站将从凌晨2点至凌晨4点停止,所以对于额外的奖励积分,有没有办法使用系统时钟自动执行此操作(并防止我不得不为此)?

我打算在登录期间发出错误以防止任何访问,但我宁愿用户甚至无法做到这一点.

建议?

asp.net iis redirect

3
推荐指数
2
解决办法
1613
查看次数

用于功能,稳定版本等的Mercurial Repository结构

如果我认为这是适合的话,我将更具体地提出一个问题,如果我需要,或者将其变成社区维基,但我的问题是:

我的开发团队最近开始使用Mercurial(从颠覆开始),到目前为止我们都喜欢它.我想知道存储库架构是否存在"最佳实践"资源.我感兴趣的是,在处理功能和新版本时,保留repo的稳定副本(用于运输/紧急​​错误修复)的最佳方法是什么.我已经阅读了很多关于命名分支和克隆存储库的内容,我希望你们中的一些人可以对你们团队的工作有所了解.

在功能经过测试并准备好下一个版本后,更容易合并?我提到的两种方法有任何严重的缺点吗?还有其他的回购管理策略吗?

我们正在接近我们的2.0.0版本的部署,并且我希望一旦它以一种新的hg工作方式出现就重新开始.

让我重新讲述一些我仍在努力的基础知识 - 假设我明天完成2.0.0 ......我想开始研究2.1.0,我该怎么办?克隆我的回购,将其命名为"working/projects/widgets2.1"并继续滚动,让我的"workin/projects/widgets2.0"准备好在bug修复情况下使用?

此外,如果客户打电话并说有一个错误并且小部件机器正在摇晃并且烟雾开始滚滚,我是否会弹出打开小部件2.0,修复错误,部署到服务器,然后提交/推送?然后我回到widgets2.1并拉/合并那个bug修复?

architecture workflow mercurial repository

3
推荐指数
2
解决办法
1458
查看次数

JQuery datepicker无法正常工作

我是JQuery和MVC的新手.

我正在开展一个宠物项目,用它来学习它们,我遇到了第一个问题.

我有一个日期字段,我想将JQuery日期选择器添加到UI.这是我做的:

添加 <script src="../../Scripts/jquery-1.3.2.min.js" type="text/javascript"></script> 到site.master

在我的Create.aspx(View)中,我有

  <asp:Content ID="Create" ContentPlaceHolderID="MainContent" runat="server">
    <h2>
        Create a Task</h2>
    <% Html.RenderPartial("TaskForm"); %>
  </asp:Content>
Run Code Online (Sandbox Code Playgroud)

在"TaskForm"(用户控件)里面,我有:

<label for="dDueDate">
            Due Date</label>
        <%= Html.TextBox("dDueDate",(Model.Task.TaskID > 0 ? string.Format("{0:g}",Model.Task.DueDate) : DateTime.Today.ToString("MM/dd/yyyy"))) %>

        <script type="text/javascript">
            $(document).ready(function() {
                $("#dDueDate").datepicker();
            });
        </script>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,上面检查任务是否具有id> 0(我们没有创建新任务),如果确实如此,它会使用任务上的日期,如果不是,则默认为今天.我希望显示datepicker UI元素,但我得到:

"Microsoft JScript运行时错误:对象不支持此属性或方法" $("#dDueDate").datepicker();

想法?这可能是一个非常简单的错误,所以不要过度分析.正如我所说,这是我第一次处理MVC或JQuery,所以我迷失了从哪里开始.

javascript asp.net asp.net-mvc jquery

0
推荐指数
1
解决办法
2503
查看次数