2010-07-16 92 views
4

我正在使用asp.net 2.0与c#。在asp.net 2.0中创建pdf文档

我必须将我的标签文本转换为pdf。为此,我已经使用这个教程 http://www.codeproject.com/KB/aspnet/Creating_PDF_documents_in.aspx

我现在面临两个问题:

  1. 每当它是创造次数1.pdf,如果有这么多的用户希望看到的的PDF格式任何页面
  2. 由于我的标签文本包含HTML内容,因此显示的是HTMl输出。我不希望HTML显示在PDF中。

请让我知道,如果你有任何其他方式来创建PDF。

在此先感谢。

回答

-1

我使用CrystalReports。它可以即时创建PDF并直接将其输出到磁盘或http。

+0

也许downvoter可以说明它的原因? – Jeroen 2010-07-16 15:31:36

2

使用HTML格式的内容创建PDF并不是完全无关紧要的CodeProject示例代码并不完全适用于此。你很可能想看看一个(商业)第三方解决方案:我自己使用Siberix Report Writer:它是灵活的,相当实惠,适用于部分信任的场景(很适合共享网络主机环境),最重要的是,不需要每个服务器的许可证,因此您可以将其嵌入到您的产品中,而不会出现重新分配问题。

1

项目1)您将您的PDF文件缓存到磁盘。当一个pdf检查请求是否已经创建了pdf(即磁盘上有一个文件),如果没有生成它。然后发送PDF使用response.writefile命令

项目2)如果您试图将格式化的HTML打印到PDF中,那么您将需要能够呈现HTML的东西。有很多html to pdf转换器,但我没有发现它们都很好。如果你对PHP感到满意,那么你可以使用一些很不错的转换器。 Joomla支持HTML到PDF,所以虽然它可能不是确切的解决方案,但它可能是一个很好的起点。

0

我也建议你看看Aspose PDF。

0

我通过@Jeroen

的建议会建议使用RDLC报表或Crystal Reports
0

你可以试试itextsharp库。我没有使用它,但是我知道其他开发人员高度赞扬它。 http://sourceforge.net/projects/itextsharp/

关于缓存问题。我会检查文件系统中是否有通过约定命名的pdf。如果该文件被找到然后提供。否则,请调用另一种生成pdf并将其保存到驱动器的方法。这种方式只有第一次请求会导致pdf的产生。命名约定将是关键。基本的实现不会是线程安全的。但这是一个好的开始。