繁体   English   中英

使用PDFBOX合并PDF仅在AWS Lambda上产生65536错误的临时文件大小

[英]Merging PDF using PDFBOX give scratch file size of 65536 error on AWS lambda only

我们正在使用PDFBOX合并两个PDF

  1. 档案1:35 KB
  2. 文件2:32 KB

合并时,出现错误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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM