• [java,2019-01-15] word转pdf


    word转pdf

    jar包

    <dependency>
    	<groupId>org.docx4j</groupId>
    	<artifactId>docx4j</artifactId>
    	<version>3.0.1</version>
    </dependency>
    

     

    代码

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.List;
    
    import org.docx4j.convert.out.pdf.viaXSLFO.PdfSettings;
    import org.docx4j.fonts.IdentityPlusMapper;
    import org.docx4j.fonts.Mapper;
    import org.docx4j.fonts.PhysicalFont;
    import org.docx4j.fonts.PhysicalFonts;
    import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
    
    public class Word2Pdf {
        public static void main(String[] args) {
            try {
    
                long start = System.currentTimeMillis();
    
                InputStream is = new FileInputStream(
                        new File("E:\1234.docx"));
                WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage
                        .load(is);
                List sections = wordMLPackage.getDocumentModel().getSections();
                for (int i = 0; i < sections.size(); i++) {
    
                    System.out.println("sections Size" + sections.size());
                    wordMLPackage.getDocumentModel().getSections().get(i)
                            .getPageDimensions().setHeaderExtent(3000);
                }
                Mapper fontMapper = new IdentityPlusMapper();
    
                PhysicalFont font = PhysicalFonts.getPhysicalFonts().get(
                        "Comic Sans MS");
    
                fontMapper.getFontMappings().put("Algerian", font);
    
                wordMLPackage.setFontMapper(fontMapper);
                PdfSettings pdfSettings = new PdfSettings();
                org.docx4j.convert.out.pdf.PdfConversion conversion = new org.docx4j.convert.out.pdf.viaXSLFO.Conversion(
                        wordMLPackage);
    
                OutputStream out = new FileOutputStream(new File(
                        "E:\1234.pdf"));
                conversion.output(out, pdfSettings);
                System.out.println("Time taken to Generate pdf  "
                        + (System.currentTimeMillis() - start) + "ms");
                System.out.println("end--------------------------"+System.currentTimeMillis());
            } catch (Exception e) {
                e.printStackTrace();
                System.err.println("error--------------------------"+System.currentTimeMillis());
            }
        }
    }
    

      好像只支持docx,不支持doc,原因正在查找中



    import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.List;
    import org.docx4j.convert.out.pdf.viaXSLFO.PdfSettings;import org.docx4j.fonts.IdentityPlusMapper;import org.docx4j.fonts.Mapper;import org.docx4j.fonts.PhysicalFont;import org.docx4j.fonts.PhysicalFonts;import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
    public class Word2Pdf {    public static void main(String[] args) {        try {
                long start = System.currentTimeMillis();
                InputStream is = new FileInputStream(                    new File("E:\1234.docx"));            WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage                    .load(is);            List sections = wordMLPackage.getDocumentModel().getSections();            for (int i = 0; i < sections.size(); i++) {
                    System.out.println("sections Size" + sections.size());                wordMLPackage.getDocumentModel().getSections().get(i)                        .getPageDimensions().setHeaderExtent(3000);            }            Mapper fontMapper = new IdentityPlusMapper();
                PhysicalFont font = PhysicalFonts.getPhysicalFonts().get(                    "Comic Sans MS");
                fontMapper.getFontMappings().put("Algerian", font);
                wordMLPackage.setFontMapper(fontMapper);            PdfSettings pdfSettings = new PdfSettings();            org.docx4j.convert.out.pdf.PdfConversion conversion = new org.docx4j.convert.out.pdf.viaXSLFO.Conversion(                    wordMLPackage);
                OutputStream out = new FileOutputStream(new File(                    "E:\1234.pdf"));            conversion.output(out, pdfSettings);            System.out.println("Time taken to Generate pdf  "                    + (System.currentTimeMillis() - start) + "ms");            System.out.println("end--------------------------"+System.currentTimeMillis());        } catch (Exception e) {            e.printStackTrace();            System.err.println("error--------------------------"+System.currentTimeMillis());        }    }}

  • 相关阅读:
    高斯消元模板(通用+异或)
    矩阵快速幂模板
    hdu 6185 递推+矩阵快速幂
    欧几里得小结
    乘法逆元模板
    vijo 1456最小总代价
    MariaDB数据库
    docker基本命令
    std::tuple
    boost::asio
  • 原文地址:https://www.cnblogs.com/shijt/p/10272572.html
Copyright © 2020-2023  润新知