[Alfresco中的DOCX到PDF的转换-大小限制

问题描述 投票:0回答:1

我已经编写了一个自定义的Alfresco调度程序,可以将DOCX文件转换为PDF。 PS:Alfresco 5.2.3企业版我注意到Alfresco的OOTB配置仅允许将那些DOCX文件转换为大小为768 KB的PDF。 768 KB以上的DOCX文件不会转换为PDF,并且日志中会引发异常。

为了克服这个问题,我尝试在alfresco-global中设置以下属性以将限制增加到5 MB。

 content.transformer.JodConverter.extensions.docx.pdf.maxSourceSizeKBytes=5120

但是当我通过上载1.5 MB DOCX文件进行测试时,日志中将引发以下异常。

 Caused by: java.lang.StackOverflowError
    at org.apache.pdfbox.util.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:77)
    at org.apache.pdfbox.util.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:153)
    at org.apache.pdfbox.util.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:100)
    at org.apache.pdfbox.util.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:153)
    at org.apache.pdfbox.util.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:100)
    at org.apache.pdfbox.util.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:153)
    at org.apache.pdfbox.util.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:100)
    at org.apache.pdfbox.util.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:153)
    at org.apache.pdfbox.util.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:100)
    at org.apache.pdfbox.util.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:153)
    at org.apache.pdfbox.util.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:100)
    at org.apache.pdfbox.util.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:153)
    at org.apache.pdfbox.util.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:100)
    at org.apache.pdfbox.util.PDFCloneUtility.cloneForNewDocument(PDFCloneUtility.java:153)

用于将文档转换为pdf的代码:

   String mimeType = contentService.getReader(doc, ContentModel.PROP_CONTENT).getMimetype().trim();
   ContentReader docReader = contentService.getReader(doc, ContentModel.PROP_CONTENT);

        String pdfName = nodeService.getProperty(doc, ContentModel.PROP_NAME).toString();

        String fileExtension = Files.getFileExtension(pdfName);

        pdfName = pdfName.replace(fileExtension, "pdf");

        String targetMimetype = "application/pdf";

        ContentWriter writer = contentService.getWriter(doc, ContentModel.PROP_CONTENT, true);
        writer.setMimetype(targetMimetype); // new mimetype
        writer.setEncoding(docReader.getEncoding()); // original encoding
        nodeService.setProperty(doc,ContentModel.PROP_NAME,pdfName);

        // Try and transform the content using the supplied delegate
        ContentTransformer pdfTransformer = contentService.getTransformer(mimeType, MimetypeMap.MIMETYPE_PDF);

        pdfTransformer.transform(docReader, writer);

[此外,我尝试在文件夹上配置OOTB规则,以将传入文件转换为PDF。因此,以下属性已经在alfresco-global中进行了配置。

content.transformer.JodConverter.extensions.docx.pdf.maxSourceSizeKBytes=5120

现在,当我将1.5 MB DOCX文件上传到该文件夹​​时,该文件将无法上传。我收到失败:504消息。

任何想法可能是什么问题?

提前感谢。

pdf alfresco transformation docx
1个回答
0
投票

如果增加堆栈内存?

例如:-Xss4m

© www.soinside.com 2019 - 2024. All rights reserved.