申告業務のためPDFをまとめようとした。 今まで使ってきたコードは PDFBox version 1.8.3。 もう PDFBox version 3.0.0 が出ているので、いい加減アップデートする。
$ groovy --version
Groovy Version: 4.0.3 JVM: 1.8.0_322 Vendor: Azul Systems, Inc. OS: Mac OS X
カレントディレクトリに 1.pdf, 2.pdf, 3.pdf があるとして、それを all.pdf にまとめる。
@Grab(group='org.apache.pdfbox', module='pdfbox', version='1.8.3')
import org.apache.pdfbox.util.PDFMergerUtility
System.setProperty("java.awt.headless", "true")
def inputFilenames = ["1.pdf", "2.pdf", "3.pdf"]
def outputFilename = 'all.pdf'
def util = new PDFMergerUtility()
inputFilenames.each{ util.addSource( new File(it) ) }
util.setDestinationFileName( outputFilename )
util.mergeDocuments()
以前メモしたコード、この環境での作動確認はしていないのであしからず。
カレントディレクトリに 1.pdf, 2.pdf, 3.pdf があるとして、それを all.pdf にまとめる。
@Grab(group='org.apache.pdfbox', module='pdfbox', version='3.0.0')
import org.apache.pdfbox.multipdf.PDFMergerUtility
import org.apache.pdfbox.io.IOUtils
import org.apache.pdfbox.io.RandomAccessStreamCache.StreamCacheCreateFunction
System.setProperty("java.awt.headless", "true")
def inputFilenames = ["1.pdf", "2.pdf", "3.pdf"]
def outputFilename = 'all.pdf'
def util = new PDFMergerUtility()
inputFilenames.each{ util.addSource( new File(it) ) }
util.setDestinationFileName( outputFilename )
def streamCache = IOUtils.createMemoryOnlyStreamCache()
util.mergeDocuments(streamCache)
Version 1.8.3 からの変更点は:
以上です。