我正在使用Web应用程序使用C#代码生成PDF文件。 PDF文件包含.tiff图像。如果包含图像的文件夹大小超过1GB,则浏览器会自动关闭。使用C#代码生成PDF文件的图像大小限制是多少?
答案 0 :(得分:0)
您的问题的答案取决于三个参数:
让我们从PDF版本和交叉引用表开始。如果你不知道:交叉引用表定义了PDF中每个对象的字节偏移量。
在PDF 1.5之前的PDF版本中,交叉引用表以纯文本格式添加,每个字节偏移量使用十位数定义。因此,文件的大小将限制为10到第十个字节(大约10千兆字节)。
版本低于PDF 1.5的PDF的最大大小约为10千兆字节。
从PDF 1.5开始,您可以选择是以纯文本格式创建交叉引用表,还是要使用交叉引用流。如果使用交叉引用流,则“仅10位数”限制将消失。
使用压缩交叉引用流的PDF版本为1.5或更高版本的PDF的最大大小仅取决于处理PDF的软件的限制。
如果您使用iText(夏普),则需要确保使用压缩的交叉引用流创建文件(如果您需要大于10千兆字节的文件)。
iText的版本也很重要:
int
值。long
值存储在这些版本中。在5.3之前使用iText版本创建的PDF的最大大小为2千兆字节。使用iText 5.3及更高版本创建的PDF的最大大小为1 TB。
但是:您还需要考虑到并非所有观看者都可以渲染大文件。虽然该文件可能完全符合ISO-32000-1,但您可能会达到内存限制。
您通过互联网向随机机器上随机浏览器中的随机PDF查看器插件发送1千兆字节。如果它是一台旧机器,它甚至不会有1千兆字节的内存。当最终用户连接速度较慢时,最终用户将不得不永远等待获取完整文件。您无法预测浏览器和PDF查看器的响应方式。我的猜测是浏览器由于内存不足异常而关闭。这不是由PDF固有的限制引起的问题,也不是由iText(Sharp)限制引起的问题。这纯粹是您设计所固有的限制。您不应该向浏览器发送千兆字节。将它们写入云中的共享驱动器。