我正在使用Web应用程序使用C#代码生成PDF文件。 PDF文件包含.tiff图像。如果包含图像的文件夹大小超过1GB,则浏览器会自动关闭。使用C#代码生成PDF文件的图像大小限制是多少?
让我们从PDF版本和交叉引用表开始。如果你不知道的话: 交叉引用表定义了PDF中每个对象的字节偏移量。
在PDF 1.5之前的PDF版本中,交叉引用表以纯文本形式添加,每个字节偏移量使用10个数字进行定义。因此文件的大小将被限制为10亿字节 (大约10 GB)。
一个版本早于PDF 1.5的PDF的最大大小约为10GB。
从PDF 1.5开始,你可以选择是否要创建纯文本交叉引用表,或者是否要使用交叉引用流。如果使用交叉引用流,则“仅限10位数”的限制消失了。
使用压缩交叉引用流的PDF版本1.5或更高版本的最大大小仅取决于处理PDF的软件的限制。
如果您使用iText(Sharp),则需要确保创建具有压缩交叉引用流的文件,如果需要的文件大小超过10 GB。
iText的版本也很重要:
int
值。long
值。使用iText 5.3及更高版本创建的PDF的最大大小为1 TB。使用iText 5.3之前的版本创建的PDF的最大大小为2 GB。
但是:您还需要考虑到并非所有查看器都能呈现如此大的文件。尽管该文件可能完全符合ISO-32000-1,但您可能会遇到内存限制。
你正在向随机浏览器上的随机PDF查看器插件发送1GB的数据。如果是旧设备,它甚至没有1GB的内存。当终端用户连接缓慢时,他将永远等待完整的文件。你无法预测浏览器和PDF查看器的响应方式。我猜测浏览器会因为内存不足而关闭。这不是PDF或iText(Sharp)固有的限制所导致的问题,而是你设计中固有的限制。你不应该将GB级别的数据发送到浏览器,而应该将其写入云共享驱动器。