少年. 2021-07-21 09:14 采纳率: 0%
浏览 201
已结题

怎样以文件流的形式合成PDF?

根据查询到的数据生成两个PDF,然后将两个PDF合并为一个PDF后转为base64编码,怎样才能在不生成本地临时文件的情况下完成操作呢

  • 写回答

2条回答 默认 最新

  • nuclear2011 2021-07-21 10:48
    关注

    Maven依赖:

    <repositories>    
        <repository>    
            <id>com.e-iceblue</id>    
            <name>e-iceblue</name>    
            <url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>    
        </repository>    
    </repositories>    
    <dependencies>    
        <dependency>    
            <groupId> e-iceblue </groupId>    
            <artifactId>spire.pdf</artifactId>    
            <version>4.6.8</version>    
        </dependency>    
    </dependencies>
    

    合并PDF到流:

    import com.spire.pdf.PdfDocument;
    import com.spire.pdf.PdfDocumentBase;
    
    import java.io.ByteArrayOutputStream;
    
    public class MergePDFs {
        public static void main(String[] args) throws IOException {
            String[] files = new String[]
            {
                "C:\\Users\\Administrator\\Desktop\\1.pdf",
                "C:\\Users\\Administrator\\Desktop\\2.pdf",
            };
    
            PdfDocumentBase pdf = PdfDocument.mergeFiles(files); //合并PDF文件,也可以传“流"参数
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            pdf.save(bos); //保存到流
            //转为base 64
            byte[] encoded=java.util.Base64.getEncoder().encode(bos.toByteArray());
            //关闭流
            bos.close();
        }
    }
    
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月18日
  • 创建了问题 7月21日