如何创建大型PDF文件(10MB,50MB,100MB,200MB,500MB,1GB等)以进行测试?

tka*_*ane 39 pdf testing qa

我试过这个for ((i=1; i<=10; i++)); do convert 100MB.pdf 10MB.pdf 100MB.pdf; done来创建100MB文件,但很快用完RAM.

有任何想法吗?

Kur*_*fle 38

最简单的工具:使用pdftk(或者pdftk.exe,如果你在Windows上):

pdftk 10_MB.pdf 100_MB.pdf cat output 110_MB.pdf
Run Code Online (Sandbox Code Playgroud)

这将是一个有效的PDF. 在这里下载pdftk.

更新:如果您想要非常大(且有效!),未优化的PDF,请使用以下命令:

pdftk 100MB.pdf 100MB.pdf 100MB.pdf 100MB.pdf 100MB.pdf cat output 500_MB.pdf
Run Code Online (Sandbox Code Playgroud)

甚至(如果您使用的是Linux,Unix或Mac OS X):

pdftk $(for i in $(seq 1 100); do echo -n "100MB.pdf "; done) cat output 10_GB.pdf
Run Code Online (Sandbox Code Playgroud)

  • 如果您知道的话,请编辑“太多堆部分:增加 MAXHINCR 或 MAX_HEAP_SECTS”的解决方法,谢谢。 (2认同)

Emi*_*mil 16

视窗: fsutil

用法:

fsutil file createnew [filename].[extension] [# of bytes]
Run Code Online (Sandbox Code Playgroud)

资料来源:https://www.windows-commandline.com/how-to-create-large-dummy-file/


Linux的: fallocate

用法:

fallocate -l 10G [filename].[extension]
Run Code Online (Sandbox Code Playgroud)

来源:在Linux系统上快速创建一个大文件?

  • 不,我得到了那个细节,尽管它很微妙。但这与实际的最初问题或我的评论有什么关系呢?OP 要求提供有效的 PDF 文件,如果您向 PDF 验证器传递 10 MB 的空字节块,您认为 PDF 验证器会回答什么? (4认同)

sty*_*yks 7

对于使用macOS的用户,mkfile可能是fallocatedd的不错选择

mkfile 100m some100mfile.pdf

参考 -/sf/answers/2343463461/

  • @anddam - 有效的 PDF 不是问题的重点。他要求一种快速、低开销的方法来创建特定大小的大文件,而该文件恰好具有 PDF 扩展名。我从他提供的示例以及如何提出问题中得到了这一点。我曾多次使用它来测试上传大小限制。 (2认同)

Tre*_*vor -9

您是否尝试过使用 cat 来合并文件?

cat 10MB.pdf 10MB.pdf > 20MB.pdf
Run Code Online (Sandbox Code Playgroud)

这应该会产生一个 20MB 的文件。

  • 我认为这不是有效的 PDF。不管怎么说,还是要谢谢你! (2认同)
  • 一个问题是,读者不会为这样一个文件使用双倍的内存。为了让读者真正对它感兴趣,必须在低级别复制 pdf 的页面对象并将它们附加到目录中。 (2认同)