使用 OpenPdf 在 pdf 中插入空白页
Insert blank page in pdf with OpenPdf
您好,我正在研究一个简单的功能,它可以合并所有 jpg 文件并将它们保存为 pdf(使用 openpdf)。每张图片都应该适合页面,我希望在它们之间有一个空白页。我已经有:
def createFromImage(directory: String, targetFile: String): Unit = {
logger.info(s"Create pdf from images in $directory.")
val document = new Document()
PdfWriter.getInstance(document, new FileOutputStream(targetFile))
document.open()
val resultFiles = new File(directory).listFiles().toList.map(_.getAbsolutePath)
resultFiles.filter(x => x.contains(".jpg")).map {
file =>
import com.lowagie.text.Image
val jpg: Image = Image.getInstance(file)
document.setPageSize(PageSize.A4)
val ratio: Float = PageSize.A4.getWidth / jpg.getWidth
jpg.scalePercent(ratio * 100)
document.add(jpg)
}
document.close()
logger.info("Pdf created.")
}
如何向 document
添加空白页?
对于干净的解决方案,您需要使用 PdfWriter
实例,因此首先替换
PdfWriter.getInstance(document, new FileOutputStream(targetFile))
来自
val writer = PdfWriter.getInstance(document, new FileOutputStream(targetFile))
然后在document.add(jpg)
之后添加:
document.newPage()
writer.setPageEmpty(false)
document.newPage()
需要 writer.setPageEmpty(false)
让 OpenPdf 认为空页面不为空,因为如果它认为当前页面完全为空,它会忽略 document.newPage()
调用。
除了 writer.setPageEmpty(false)
,您还可以添加一些不可见的内容,例如全白图像。
您好,我正在研究一个简单的功能,它可以合并所有 jpg 文件并将它们保存为 pdf(使用 openpdf)。每张图片都应该适合页面,我希望在它们之间有一个空白页。我已经有:
def createFromImage(directory: String, targetFile: String): Unit = {
logger.info(s"Create pdf from images in $directory.")
val document = new Document()
PdfWriter.getInstance(document, new FileOutputStream(targetFile))
document.open()
val resultFiles = new File(directory).listFiles().toList.map(_.getAbsolutePath)
resultFiles.filter(x => x.contains(".jpg")).map {
file =>
import com.lowagie.text.Image
val jpg: Image = Image.getInstance(file)
document.setPageSize(PageSize.A4)
val ratio: Float = PageSize.A4.getWidth / jpg.getWidth
jpg.scalePercent(ratio * 100)
document.add(jpg)
}
document.close()
logger.info("Pdf created.")
}
如何向 document
添加空白页?
对于干净的解决方案,您需要使用 PdfWriter
实例,因此首先替换
PdfWriter.getInstance(document, new FileOutputStream(targetFile))
来自
val writer = PdfWriter.getInstance(document, new FileOutputStream(targetFile))
然后在document.add(jpg)
之后添加:
document.newPage()
writer.setPageEmpty(false)
document.newPage()
需要 writer.setPageEmpty(false)
让 OpenPdf 认为空页面不为空,因为如果它认为当前页面完全为空,它会忽略 document.newPage()
调用。
除了 writer.setPageEmpty(false)
,您还可以添加一些不可见的内容,例如全白图像。