精华内容
下载资源
问答
  • JavaWord转PDF

    2020-03-05 11:42:36
    javaword动态填充数据生成新的word,并将新的word转换为pdf。仅word动态填充,删除不必要的代码就可以。仅word转pdf也删除不必要的代码即可。
  • Java Word Pdf

    千次阅读 2017-04-19 17:20:14
    Java Word Pdf 前言:  平常项目中遇到需要将word转换为pdf,我们一般利用的是jacob.jar组件,这个组件利用的是微软office组件,但有时项目需要部署到liunx下,liunx中没有office,我们可以利用apache ...

    Java Word 转 Pdf

    前言:  

         平常项目中遇到需要将word转换为pdf,我们一般利用的是jacob.jar组件,这个组件利用的是微软office组件,但有时项目需要部署到liunx下,liunx中没有office,我们可以利用apache poi实现这一功能。


    代码:

    [java] view plain copy
    1. import java.io.FileInputStream;  
    2. import java.io.FileOutputStream;  
    3. import java.io.InputStream;  
    4. import java.io.OutputStream;  
    5. import java.util.HashMap;  
    6. import java.util.List;  
    7. import java.util.Map;  
    8.    
    9. import org.apache.commons.collections.MapUtils;  
    10. import org.apache.poi.xwpf.converter.pdf.PdfConverter;  
    11. import org.apache.poi.xwpf.converter.pdf.PdfOptions;  
    12. import org.apache.poi.xwpf.usermodel.XWPFDocument;  
    13. import org.apache.poi.xwpf.usermodel.XWPFParagraph;  
    14. import org.apache.poi.xwpf.usermodel.XWPFRun;  
    15. import org.apache.poi.xwpf.usermodel.XWPFTable;  
    16. import org.apache.poi.xwpf.usermodel.XWPFTableCell;  
    17. import org.apache.poi.xwpf.usermodel.XWPFTableRow;  
    18. import org.slf4j.Logger;  
    19. import org.slf4j.LoggerFactory;  
    20.    
    21. import fr.opensagres.xdocreport.utils.StringUtils;  
    22.    
    23. /** 
    24.  * @author Rocca 
    25.  * 
    26.  */  
    27. public class WordPdfUtils {  
    28.    
    29.     protected static final Logger logger = LoggerFactory.getLogger(WordPdfUtils.class);  
    30.        
    31.     public static void main(String[] args) throws Exception{  
    32.         String filepath = "E:/Spring_Security_安全权限管理手册.docx";  
    33.         String outpath = "E:/test.pdf";   
    34.            
    35.         InputStream source = new FileInputStream(filepath);  
    36.         OutputStream target = new FileOutputStream(outpath);  
    37.         Map<String, String> params = new HashMap<String, String>();  
    38.            
    39.            
    40.         PdfOptions options = PdfOptions.create();  
    41.            
    42.         wordConverterToPdf(source, target, options, params);  
    43.     }  
    44.    
    45.     /** 
    46.      * 将word文档, 转换成pdf, 中间替换掉变量 
    47.      * @param source 源为word文档, 必须为docx文档 
    48.      * @param target 目标输出 
    49.      * @param params 需要替换的变量 
    50.      * @throws Exception 
    51.      */  
    52.     public static void wordConverterToPdf(InputStream source,  
    53.             OutputStream target, Map<String, String> params) throws Exception {  
    54.         wordConverterToPdf(source, target, null, params);      
    55.     }  
    56.    
    57.     /** 
    58.      * 将word文档, 转换成pdf, 中间替换掉变量 
    59.      * @param source 源为word文档, 必须为docx文档 
    60.      * @param target 目标输出 
    61.      * @param params 需要替换的变量 
    62.      * @param options PdfOptions.create().fontEncoding( "windows-1250" ) 或者其他 
    63.      * @throws Exception 
    64.      */  
    65.     public static void wordConverterToPdf(InputStream source, OutputStream target,   
    66.             PdfOptions options,  
    67.             Map<String, String> params) throws Exception {  
    68.          XWPFDocument doc = new XWPFDocument(source);  
    69.          paragraphReplace(doc.getParagraphs(), params);  
    70.          for (XWPFTable table : doc.getTables()) {  
    71.            for (XWPFTableRow row : table.getRows()) {  
    72.                for (XWPFTableCell cell : row.getTableCells()) {  
    73.                    paragraphReplace(cell.getParagraphs(), params);  
    74.                }  
    75.            }  
    76.        }  
    77.        PdfConverter.getInstance().convert(doc, target, options);  
    78.     }  
    79.        
    80.     /** 替换段落中内容 */  
    81.     private static void paragraphReplace(List<XWPFParagraph> paragraphs, Map<String, String> params) {  
    82.         if (MapUtils.isNotEmpty(params)) {  
    83.             for (XWPFParagraph p : paragraphs){  
    84.                 for (XWPFRun r : p.getRuns()){  
    85.                     String content = r.getText(r.getTextPosition());  
    86.                     logger.info(content);  
    87.                     if(StringUtils.isNotEmpty(content) && params.containsKey(content)) {  
    88.                         r.setText(params.get(content), 0);  
    89.                     }  
    90.                 }  
    91.             }  
    92.         }  
    93.     }  
    94.        
    95. }  

    原博文地址:

    http://my.oschina.net/mingpeng/blog/337198。

    备注:

       1.word的后缀必须为docx格式。
       2.我在使用中发现有些jar包需要特定版本,代码才能正常运行。

    所使用jar包:

    apache poi 3.8;com.lowagie.text-2.1.7.jar;commons-collections-3.2.1.jar;fr.opensagres.xdocreport.itext.extension-1.0.4.jar;ooxml-schemas-1.1.jar;org.apache.poi.xwpf.converter.core-1.0.4.jar;org.apache.poi.xwpf.converter.pdf-1.0.4.jar
    展开全文
  • java word转pdf

    2017-10-23 09:42:11
    支持word转pdf,完美无水印,无需安装插件,里面有详细demo。警告:请勿用于商业用途,仅供学习研究,如有任何版权纠纷,本人概不负责!
  • Java Word转PDF

    2021-03-11 15:21:10
    有时候需要将一个word文档转换成PDF,网站找的软件...使用documents4j进行word转PDF 注:windows平台 pom <dependency> <groupId>com.documents4j</groupId> <artifactId>documents4j-local

    有时候需要将一个word文档转换成PDF,网站找的软件,明面上说是免费,但是暗藏祸心,不开vip就只能转有水印的。。。

    作为一个程序员,不能再忍了,决定去网上copy一段代码自己弄

    使用documents4j进行word转PDF
    注:windows平台

    pom

    <dependency>
                <groupId>com.documents4j</groupId>
                <artifactId>documents4j-local</artifactId>
                <version>1.1.5</version>
            </dependency>
            <dependency>
                <groupId>com.documents4j</groupId>
                <artifactId>documents4j-transformer-msoffice-word</artifactId>
                <version>1.1.5</version>
            </dependency>
            <dependency>
                <groupId>commons-fileupload</groupId>
                <artifactId>commons-fileupload</artifactId>
                <version>1.4</version>
            </dependency>
    

    yml文件能自己写写就自己写吧,我就懒得贴出来了

    Controller

    /**
       * word转pdf
         * @param file  word文件
         */
        @RequestMapping("wordToPdf")
        @ResponseBody
        public void docxToPdf(MultipartFile file,HttpServletResponse response) {
    
            try {
                /*获取上传文件名*/
                String filename = file.getOriginalFilename();
                /*获取上传word的输入流*/
                InputStream inputStream = file.getInputStream();
                response.setContentType("application/octet-stream");
                response.setCharacterEncoding("UTF-8");
                try {
                    filename = URLEncoder.encode(filename + ".pdf", "UTF-8");
                    response.setHeader("Content-Disposition", "attachment;filename=" + filename);
                } catch (UnsupportedEncodingException e) {
                    response.setHeader("Content-Disposition", "attachment;filename=error.pdf");
                }
                /*创建返回输出流*/
                OutputStream outputStream = response.getOutputStream();
                IConverter converter = LocalConverter.builder().build();
                converter.convert(inputStream).as(DocumentType.DOCX).to(outputStream).as(DocumentType.PDF).execute();
    
                outputStream.flush();
                outputStream.close();
    
            } catch (Exception e) {
    
                e.printStackTrace();
            }
    
        }
    

    copy即可使用。

    展开全文
  • Java word pdf

    2019-02-17 23:51:57
    最近用户要求导出pdf,项目已实现word导出,所以想到将word转pdf,从而避免了重新写pdf模板 自己亲测过得两种较好的word转pdf方式 JobConverter + OpenOffice(暂时只献上Windows版本) 前提:需安装OpenOffice...

    最近用户要求导出pdf,项目已实现word导出,所以想到将word转pdf,从而避免了重新写pdf模板

    自己亲测过得两种较好的word转pdf方式

    • JobConverter + OpenOffice(暂时只献上Windows版本)

        前提:需安装OpenOffice以及在项目中导入JobConverter的jar包

        OpenOffice安装链接http://www.openoffice.org/download/index.html

        需要的jar包

            <dependency>
                <groupId>com.artofsolving</groupId>
                <artifactId>jodconverter</artifactId>
                <version>2.2.2</version>
            </dependency>
    
            <dependency>
                <groupId>com.artofsolving</groupId>
                <artifactId>jodconverter-cli</artifactId>
                <version>2.2.2</version>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.openoffice/ridl -->
            <dependency>
                <groupId>org.openoffice</groupId>
                <artifactId>ridl</artifactId>
                <version>4.1.2</version>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.openoffice/juh -->
            <dependency>
                <groupId>org.openoffice</groupId>
                <artifactId>juh</artifactId>
                <version>4.1.2</version>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.openoffice/unoil -->
            <dependency>
                <groupId>org.openoffice</groupId>
                <artifactId>unoil</artifactId>
                <version>4.1.2</version>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.openoffice/jurt -->
            <dependency>
                <groupId>org.openoffice</groupId>
                <artifactId>jurt</artifactId>
                <version>4.1.2</version>
            </dependency>

    提醒:网传jodconverter在2.2.2以下的版本无法将docx转换为pdf,在maven中央仓库也未找到jodconverter2.2.2版本,在sourceforge上找到jodconverter2.2.2版本特地分享链接:https://sourceforge.net/projects/jodconverter/files/JODConverter/2.2.2/

    为了更方便大家,在这提供以上jar包,百度网盘链接:https://pan.baidu.com/s/1Pwo7I7NntlefcW0DGQV02w 提取码:a07m

    好了,之后就直接上代码啦

    import com.artofsolving.jodconverter.DocumentConverter;
    import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
    import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;
    import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;
    
    import java.io.File;
    import java.io.IOException;
    
    /**
     * author: LQB
     * create: 2019-02-16 20:50
     **/
    public class Test {
        // 将word格式的文件转换为pdf格式
        public static void WordToPDF(String startFile, String overFile) throws IOException {
            // 源文件目录
            File inputFile = new File(startFile);
            if (!inputFile.exists()) {
                System.out.println("源文件不存在!");
                return;
            }
    
            // 输出文件目录
            File outputFile = new File(overFile);
            if (!outputFile.getParentFile().exists()) {
                outputFile.getParentFile().mkdirs();
            }
    
            // 调用openoffice服务线程
            /** 我把openOffice下载到了 C:/Program Files (x86)/下  ,下面的写法自己修改编辑就可以**/
            String command = "C:/Program Files (x86)/OpenOffice 4/program/soffice.exe -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\"";
            Process p = Runtime.getRuntime().exec(command);
    
            // 连接openoffice服务
            OpenOfficeConnection connection = new SocketOpenOfficeConnection("127.0.0.1", 8100);
            connection.connect();
    
            // 转换
            DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
            converter.convert(inputFile, outputFile);
    
            // 关闭连接
            connection.disconnect();
    
            // 关闭进程
            p.destroy();
        }
    
        public static void main(String[] args) {
            String start = "C:\\upLoad\\all.doc";
            String over = "C:\\upLoad\\all.pdf";
            try {
                WordToPDF(start, over);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
    }
    

     

    • xdocreport

    如果要用xdocreport的话,可直接参考这个github文章:https://github.com/yeokm1/docs-to-pdf-converter

    总结:

      优点 缺点
    JobConverter + OpenOffice 跨平台 需安装软件
    xdocreport 跨平台,不需安装软件 只支持doc,docx,ppt,pptx,odt转pdf

     

     

     

     

    参考文章:https://blog.csdn.net/csdnFlyFun/article/details/79523262

    文章如有什么问题,欢迎大佬们指正

    展开全文
  • java word转PDf

    2020-05-27 14:21:41
    网上有各种的word转PDF的方法,看自己的项目适合哪个,在这里我用的是aspose.words 关于aspose.words它是收费的转换PDF之后在第一页会有警示语,这里需要一个去除警示语的破解文件(license.xml) <?xml ...

    网上有各种的word转PDF的方法,看自己的项目适合哪个,在这里我用的是aspose.words

    关于aspose.words它是收费的转换PDF之后在第一页会有警示语,这里需要一个去除警示语的破解文件(license.xml)

    <?xml version="1.0" encoding="UTF-8" ?> 
    <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>

    转换代码如下:

    import com.aspose.words.*;
    import org.springframework.core.io.ClassPathResource;
    
    import java.io.*;
    
    public class WordToPDFTest {
        public static void main(String[] args) throws  Exception{
            doc2pdf("E:/fpxjfysb.docx","E:/ttt.pdf");
    
        };
    
        public static boolean getLicense() {
            boolean result = false;
            try {
                //File file = new File("E:\\license.xml"); // 新建一个空白pdf文档,根据自己的项目放置(license.xml)
                File file = new ClassPathResource("license.xml").getFile(); // 新建一个空白pdf文档
                InputStream is = new FileInputStream(file); // license.xml应放在..\WebRoot\WEB-INF\classes路径下
                License aposeLic = new License();
                aposeLic.setLicense(is);
                result = true;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result;
        }
    
        public static void doc2pdf(String inPath, String outPath) {
            if (!getLicense()) { // 验证License 若不验证则转化出的pdf文档会有水印产生
                return;
            }
            try {
                long old = System.currentTimeMillis();
                File file = new File(outPath); // 新建一个空白pdf文档
                FileOutputStream os = new FileOutputStream(file);
                Document doc = new Document(inPath); // Address是将要被转化的word文档
                doc.save(os, SaveFormat.PDF);// 全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF,
                // EPUB, XPS, SWF 相互转换
                long now = System.currentTimeMillis();
                System.out.println("共耗时:" + ((now - old) / 1000.0) + "秒"); // 转化用时
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    }

    效果就不展示了,亲测可用。

    展开全文
  • Java Word转pdf

    2019-05-08 17:08:14
    需要的资源: 下载资源 注意将jacob-1.19-x64.dll和jacob-1.19-x84.dll放在java安装目录的jre/bin下 示例:E:\Java\jdk1.8.0_111\jre ... private static final int wdFormatPDF = 17;// PDF 格式 ...
  • java word 转pdf

    2019-08-16 19:37:34
    Free Spire.Doc for Java 2.0.0(免费版) https://www.e-iceblue.cn/Downloads/Free-Spire-Doc-JAVA.html 方法1:先从官网(https://www.e-iceblue.cn/Downloads/Free-Spire-Doc-JAVA.html)下载jar包。 ...
  • Java word PDF

    2019-04-01 22:40:09
    public class Word2PDF { static final int wdFormatPDF = 17;// PDF 格式 public static void main(String[] args) { wordToPDF(); } public static void wordToPDF(){ System.out.println("启动...
  • Java Word PDF

    2017-10-11 11:24:00
    // /usr/bin/libreoffice --invisible --convert-to pdf /home/sunday/桌面/需求规格说明书_补充需求V0.1.docx File fin = new File(filepath); File fout = new File(outpath); // 调用openoffice服务...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,850
精华内容 740
关键字:

javaword转pdf

java 订阅