Tagged Tags:

    第二回excel转pdf是马到功成的,第叁次开端前边皆是乱码,是因为本人的pdf转excel方法出现的标题,消除办法是选择java本身底层的情势(详见下方代码)。

亚搏app官方网站,    /**
     * 根据字符串长度获取行高
     *
     * @param str
     * @return
     */
    public static Float getRowHeight(String str) {

  excel转pdf出现折行的情状特别广泛,因为在程序运维进程江西中国广播公司大字段是抓取的,你不可能料定你的excel转成pdf会有几页,所以这一年你就绝不轻易设置excel的预览格式,将excel的单元格式设置自动换行。

在有一些必要在那之中大家需求抓取字段并且填充到excel表格里面,最终将excel表格调换到pdf格式实行输出,小编首先次接触那一个须要时,遭逢多少个相比吃力的标题,未来相继列出并且提供消除方案。

你须要先拿走抓取的字符串的长短,然后通过这么些方法总结行高,再将excel须求填写的该行用Java代码设置行高(行高单位是像素),可是假如出现本身上边说的字段内容无故中间某些换行,那么您收获的行高就能供应满足不了要求,这年你供给转移这一个地点—–>>>>Float rowHeight = (float) (lineCount * X); 
x的值一定要安装的大一行,以免出现这种状态!

www.yabovip4.com,  当你未安装单元格大小而又从不设置单元格自动换行,比如你的A18单元格里面包车型大巴字段当先了单元格的长度你还从未设置单元格大小而又尚未安装单元格自动换行,就将抓取的字段填充在B18单元格里面,那么打印出来的pdf文件A18单元格高出单元非常的剧情是不感觉然呈现的,此时您要么将抓取字段填充在C18单元格内要么将更动A18单元格格式

        Integer lineCount = (int) (getLength(str) / 64) + 1;
        if (str.contains(“\n”)) {
            Integer tempLineCount = 1;
            String[] lines = str.split(“\n”);
            for (String line : lines) {
                Integer everyLineCount = (int) (getLength(line) / 64) +
1;
                tempLineCount += everyLineCount;
            }
            lineCount = lineCount >= tempLineCount ? lineCount :
tempLineCount;
        }
        Float rowHeight = (float) (lineCount * 20);
        return rowHeight;
    }

  那是自己境遇的最坑的一个地点,今年你只需求在excel单元格里面安装自动换行就可以,无需代码强行自动换行(强行换行有十分的大希望只现出多行数据只显示一行)。同不经常间你必要如下代码:

1:excel转pdf出现乱码:

4:excel转PDF字段内容无故中间有个别换行:

2:excel转pdf出现折行。

 public static boolean getLicense()
{
        boolean result = false;
        try {
            InputStream is =
Thread.currentThread().getContextClassLoader()
                  
 .getResourceAsStream(“license.xml”); // 
license.xml应放在..\WebRoot\WEB-INF\classes路径下
            License aposeLic = new
License();
将excel的单元格式设置自动换行。           
aposeLic.setLicense(is);
            result = true;
        } catch (Exception e)
{               
将excel的单元格式设置自动换行。            e.printStackTrace();
        }
        return result;
    }
将excel的单元格式设置自动换行。    
    
    public static void
excelTransferPdf(String excelPath,String pdfPath) {
        if (!getLicense()) {
            System.out.println(“license
faile”);
            return;
        }
        
        try {     
            Workbook wb = new
Workbook(excelPath);
            FileOutputStream fileOS = new
FileOutputStream(new File(pdfPath));
            wb.save(fileOS,
com.aspose.cells.SaveFormat.PDF);
            fileOS.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

 

3:抓取字段显示结果不完整:。

/**
     *
得到三个字符串的长短,展现的长度,二个汉字或日波兰语长度为1,英文字符长度为0.5
     *
     * @param String
     *            s 必要获得长度的字符串
     * @return int 获得的字符串长度
     */
    public static double getLength(String s) {
        double valueLength = 0;
        if (s == null) {
            return 0;
        }
        String chinese = “[\u4e00-\u9fa5]”;
        //
获取字段值的长短,倘使含普通话字符,则各样汉语字符长度为2,不然为1
        for (int i = 0; i < s.length(); i++) {
            // 获取三个字符
            String temp = s.substring(i, i + 1);
            // 判别是不是为粤语字符
            if (temp.matches(chinese)) {
                // 中文字符长度为2
                valueLength += 2;
            } else {
                // 别的字符长度为1
                valueLength += 1;
            }
        }
        // 进位取整
        return Math.ceil(valueLength);
    }

发表评论

电子邮件地址不会被公开。 必填项已用*标注