【发布时间】:2012-06-27 19:15:59
【问题描述】:
我知道这里有一个类似的问题,来自一个想将单个文件分成多个文件的人。但遗憾的是,由于创建新文件会产生一定的开销,因此此解决方案对我不起作用。
背景(非必读):
我要做的是生成任意大小的 PDF 文件来为数据库播种(即调用具有所需文件大小的方法,以千字节或兆字节为单位,应该生成所需大小的文件)。
目前,我通过将其随机化并将其以 1KB 块(以段落形式)放入文件中来确保输入数据不可压缩。在将输出字节数绘制为所需字节数的函数后,我更改了算法以解释这种(令人愉快和预期的)线性关系。
但是,由于输入数据的随机性,这种方法存在一定的不确定性,其绝对值会随着所需大小而增加(因此,尽管它有百分之一的折扣,在 20 MB 的文件中,这百分之一的绝对值非常重要)。
理想情况下,我可以生成任意大小的文件,大小在千字节以内,但为了做到这一点,我需要知道任何给定操作后的文件大小,为了知道这一点,我需要知道 PDFWriter 何时写入其缓冲区。或者至少该缓冲区有多大(即,如果缓冲区小于一千字节,则写入时间无关紧要,因为我只关心准确到该边距内)。
问题:
有没有办法在不关闭文档的情况下使用文本检查实际要在 PDF 中写入磁盘的数据字节数?
或者“关闭文档”只是意味着它刷新缓冲区并关闭流(即它不需要在文件关闭时将任何额外的非用户输入数据量写入文件)?
【问题讨论】:
标签: java pdf pdf-generation itext