[英]Merging PDF using PDFBOX give scratch file size of 65536 error on AWS lambda only
我们正在使用PDFBOX合并两个PDF
合并时,出现错误Expected scratch file size of 65536 but found 61440
我正在使用使用tempfile
进行合并的MemoryUsuageSetting
,如
pdfMerger.mergeDocuments(MemoryUsageSetting.setupTempFileOnly());
以下是我的合并例程中的代码
List<InputStream> sources (inputsteam of my files to merge)
mergedPDFOutputStream = new ByteArrayOutputStream();
cosStream = new COSStream();
PDFMergerUtility pdfMerger = new PDFMergerUtility();
pdfMerger.addSources(sources);
pdfMerger.setDestinationStream(mergedPDFOutputStream);
pdfMerger.mergeDocuments(MemoryUsageSetting.setupTempFileOnly());
在AWS Lambda中调用上述合并例程时,我们遇到了相同的错误( Expected scratch file size of 65536 but found 61440
)
但是,如果我在本地计算机上的Java主程序中调用PDF合并例程,则文件将成功生成。
下面是错误的堆栈跟踪
java.io.IOException: Expected scratch file size of 65536 but found 61440r at org.apache.pdfbox.io.ScratchFile.enlarge(ScratchFile.java:237)r at org.apache.pdfbox.io.ScratchFile.getNewPage(ScratchFile.java:167)r at org.apache.pdfbox.io.ScratchFileBuffer.addPage(ScratchFileBuffer.java:126)r at org.apache.pdfbox.io.ScratchFileBuffer.<init>(ScratchFileBuffer.java:84)r at org.apache.pdfbox.io.ScratchFile.createBuffer(ScratchFile.java:403)r at org.apache.pdfbox.cos.COSStream.createRawOutputStream(COSStream.java:271)r at org.apache.pdfbox.multipdf.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:119)r at org.apache.pdfbox.multipdf.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:101)r at org.apache.pdfbox.multipdf.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:140)r at org.apache.pdfbox.multipdf.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:101)r at org.apache.pdfbox.multipdf.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:110)r at org.apache.pdfbox.multipdf.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:101)r at org.apache.pdfbox.multipdf.PDFCloneUtility.cloneMerge(PDFCloneUtility.java:194)r at org.apache.pdfbox.multipdf.PDFCloneUtility.cloneMerge(PDFCloneUtility.java:225)r at org.apache.pdfbox.multipdf.PDFCloneUtility.cloneMerge(PDFCloneUtility.java:185)r at org.apache.pdfbox.multipdf.PDFCloneUtility.cloneMerge(PDFCloneUtility.java:225)r at org.apache.pdfbox.multipdf.PDFCloneUtility.cloneMerge(PDFCloneUtility.java:174)r at org.apache.pdfbox.multipdf.PDFMergerUtility.appendDocument(PDFMergerUtility.java:558)r at org.apache.pdfbox.multipdf.PDFMergerUtility.legacyMergeDocuments(PDFMergerUtility.java:391)r at org.apache.pdfbox.multipdf.PDFMergerUtility.mergeDocuments(PDFMergerUtility.java:277)r
我们正在使用PDFBox
版本2.0.12
有人可以指导解决此问题吗?
谢谢,Anjana
我在AWS中遇到了同样的问题,只是更改了合并的内存使用
pdfMerger.mergeDocuments(MemoryUsageSetting.setupMixed(MEMORY_USE));
至
pdfMerger.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());
它适用于AWS Lambda,
希望这对其他人有帮助。
问候
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.