admin管理员组

文章数量:1605163

首先功能需要准备的依赖包:
aspose-words-15.8.0-jdk16.jar

  <dependency>
            <groupId>com.aspose.words</groupId>
            <artifactId>aspose-words-jdk15</artifactId>
            <version>15.8.0</version>
        </dependency>
public class FileUtil {
    public static File getFileStream(String fileName) {

        //获取项目路径
        String url="F:/test/";
        //文件路径
        String docPath = url+fileName;

        //String docPath = "D://" + fileName;
        if (!new File(docPath).exists()) {
            return null;
        }
        String str[] = docPath.split("[.]");
        if (str[str.length-1]=="pdf"){
            return new File(docPath);
        }
        String pdfName = docPath.replace(str[str.length-1],"pdf");
        System.out.println(pdfName);
        File pdfFile = new File(pdfName);

        try {

            ResourceLoader resourceLoader=new DefaultResourceLoader();
            String location="/Aspose.Words.lic";
            //获取resource包下的Aspose.Words.lic文件
            InputStream inputStream = resourceLoader.getResource(location).getInputStream();
                        License aposeLic = new License();
                        aposeLic.setLicense(inputStream);
            Document document = new Document(docPath);
            document.save(new FileOutputStream(pdfFile), SaveFormat.PDF);
                    } catch (Exception e) {
                         e.printStackTrace();
        }


        if (!pdfFile.exists()) {
            return null;
        }
        return pdfFile;

    }
}

serviceImpl层实现
 @Override
    public Map<String, Object> getFileStream(HttpServletResponse response, String fileName) {
        File pdfFile = null;
        OutputStream outputStream = null;
        BufferedInputStream bufferedInputStream = null;
//	        String docPath = fileName + ".doc";
//	        String pdfPath = fileName + ".pdf";
        try {
            //获取生成的pdf
            pdfFile = FileUtil.getFileStream(fileName);
            outputStream = response.getOutputStream();
            response.setContentType("application/pdf;charset=UTF-8");
            bufferedInputStream = new BufferedInputStream(new FileInputStream(pdfFile));
            byte buffBytes[] = new byte[1024];
            outputStream = response.getOutputStream();
            int read = 0;
            //docx||doc文档流写入pdf文件
            while ((read = bufferedInputStream.read(buffBytes)) != -1) {
                outputStream.write(buffBytes, 0, read);
            }
        } catch (ConnectException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }  finally {
            if(outputStream != null){
                try {
                    outputStream.flush();
                    outputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if(bufferedInputStream != null){
                try {
                    bufferedInputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return null;
    }

//创建一个Aspose.Words.lic放在resource下即可
```java
"<License>
<Data>
<Products>
<Product>Aspose.Total for Java</Product>
<Product>Aspose.Words for Java</Product>
</Products>
<EditionType>Enterprise</EditionType>
<SubscriptionExpiry>20991231</SubscriptionExpiry>
<LicenseExpiry>20991231</LicenseExpiry>
<SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>
</Data>
<Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>
</License>"

需要依赖包可以
链接:https://pan.baidu/s/1Z4UHFMThaEj4D7Phbq7R3w
提取码:s18s

本文标签: SpringBootwordPDF