我不确定是否所有浏览器都能<h:graphicImage value="some.pdf" ... />
同样好地显示您嵌入的 PDF(通过 完成)。
将第一页提取为 PDF
如果您坚持使用 PDF,我建议您使用以下两种命令行工具之一来提取任何 PDF 的第一页:
pdftk
- 鬼脚本
两者都可用于 Linux、Mac OS X 和 Windows。
pdftk 命令
pdftk input.pdf cat 1 output page-1-of-input.pdf
鬼脚本命令
gs -o page-1-of-input.pdf -sDEVICE=pdfwrite -dPDFLastPage=1 input.pdf
(在 Windows 上使用gswin32c.exe
或gswin64c.exe
代替gs
。)
pdftk
在页面提取方面比 Ghostscript 稍快,但对于单个页面,这种差异可能可以忽略不计。 从最新发布的版本 v9.05 开始,前一句话不再适用。我发现 Ghostscript(包括所有启动开销)需要约 1 秒才能从 756 页 PDF 规范中提取第一页,而 PDFTK 需要约 11 秒。
将第一页转换为 JPEG
如果您想确保即使较旧的浏览器也能很好地显示您的第一页,请将其转换为 JPEG。Ghostscript 是你的朋友(ImageMagick 不能自己做,它需要 Ghostscript 的帮助):
gs -o page-1-of-input-PDF.jpeg -sDEVICE=jpeg -dLastPage=1 input.pdf
如果您需要第 33 页,您可以这样做:
gs -o page-33-of-input-PDF.jpeg -sDEVICE=jpeg -dFirstPage=33 -dLastPage33 input.pdf
如果您需要一系列 PDF,例如第 17-23 页,请尝试以下操作:
gs -o page-16+%03d-of-input-PDF.jpeg -sDEVICE=jpeg -dFirstPage=17 -dLastPage23 input.pdf
请注意,%03d
符号会随着处理的每一页而增加,从 1 开始。因此,您的第一个 JPEG 名称将是page-16+001-of-input-PDF.jpeg
.
也许PNG更好?
请注意,JPEG 不是一种非常适合包含高黑白对比度和锐利边缘(如文本页面)的图像的格式。PNG对此要好得多。
使用 Ghostscript 从第一个 PDF 页面创建 PNG 很简单:
gs -o page-1-of-input-PDF.png -sDEVICE=pngalpha -dLastPage=1 input.pdf
在提取页面范围时,与 JPEG 一样的模拟选项是正确的。