|
|
|
@ -11,6 +11,8 @@ import com.itextpdf.text.pdf.PdfPTable;
|
|
|
|
import com.itextpdf.text.pdf.PdfWriter;
|
|
|
|
import com.itextpdf.text.pdf.PdfWriter;
|
|
|
|
import org.apache.poi.hslf.usermodel.*;
|
|
|
|
import org.apache.poi.hslf.usermodel.*;
|
|
|
|
import org.apache.poi.xslf.usermodel.*;
|
|
|
|
import org.apache.poi.xslf.usermodel.*;
|
|
|
|
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
|
|
|
|
|
|
import java.awt.*;
|
|
|
|
import java.awt.*;
|
|
|
|
import java.awt.image.BufferedImage;
|
|
|
|
import java.awt.image.BufferedImage;
|
|
|
|
@ -32,6 +34,8 @@ import static com.sztzjy.linkCommerce.util.pdfUtils.PDFConvertUtil.TypeEnum.*;
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public final class PDFConvertUtil {
|
|
|
|
public final class PDFConvertUtil {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static final Logger log = LoggerFactory.getLogger(PDFConvertUtil.class);
|
|
|
|
|
|
|
|
|
|
|
|
final private static Map<TypeEnum, List<String>> types = new HashMap<>();
|
|
|
|
final private static Map<TypeEnum, List<String>> types = new HashMap<>();
|
|
|
|
|
|
|
|
|
|
|
|
public static enum TypeEnum {
|
|
|
|
public static enum TypeEnum {
|
|
|
|
@ -122,14 +126,18 @@ public final class PDFConvertUtil {
|
|
|
|
|
|
|
|
|
|
|
|
// 验证License 若不验证则转化出的pdf文档会有水印产生
|
|
|
|
// 验证License 若不验证则转化出的pdf文档会有水印产生
|
|
|
|
if (!getLicense()) {
|
|
|
|
if (!getLicense()) {
|
|
|
|
|
|
|
|
log.warn("word转PDF失败:Aspose License 校验未通过");
|
|
|
|
return false;
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
//此处处理乱码和小方块
|
|
|
|
//此处处理乱码和小方块
|
|
|
|
//如果在本地运行,此处报错,请注释这个这是字体,主要是为了解决linux环境下面运行jar时找不到中文字体的问题
|
|
|
|
//如果在本地运行,此处报错,请注释这个这是字体,主要是为了解决linux环境下面运行jar时找不到中文字体的问题
|
|
|
|
//指定文件库内容路径
|
|
|
|
//指定文件库内容路径
|
|
|
|
|
|
|
|
// 字体目录同时包含 Windows 系统字体与 Linux 常见目录:
|
|
|
|
|
|
|
|
// setFontsFolders 会替换 aspose 的默认字体源,漏掉 Windows 字体目录时
|
|
|
|
|
|
|
|
// 宋体等中文字体不可见,转换出的 PDF 中文全部变成方框
|
|
|
|
FontSettings.getDefaultInstance().setFontsFolders(
|
|
|
|
FontSettings.getDefaultInstance().setFontsFolders(
|
|
|
|
new String[] {"/usr/share/fonts", "/usr/share/fonts/win"}
|
|
|
|
new String[] {"C:\\Windows\\Fonts", "/usr/share/fonts", "/usr/share/fonts/win"}
|
|
|
|
, true);
|
|
|
|
, true);
|
|
|
|
// 将源文件保存在com.aspose.words.Document中,具体的转换格式依靠里面的save方法
|
|
|
|
// 将源文件保存在com.aspose.words.Document中,具体的转换格式依靠里面的save方法
|
|
|
|
com.aspose.words.Document doc = new com.aspose.words.Document(inputStream);
|
|
|
|
com.aspose.words.Document doc = new com.aspose.words.Document(inputStream);
|
|
|
|
@ -139,7 +147,7 @@ public final class PDFConvertUtil {
|
|
|
|
|
|
|
|
|
|
|
|
System.out.println("word转换完毕");
|
|
|
|
System.out.println("word转换完毕");
|
|
|
|
} catch (Exception e) {
|
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
log.warn("word转PDF异常", e);
|
|
|
|
return false;
|
|
|
|
return false;
|
|
|
|
}finally {
|
|
|
|
}finally {
|
|
|
|
closeOutput(outputStream);
|
|
|
|
closeOutput(outputStream);
|
|
|
|
@ -208,7 +216,7 @@ public final class PDFConvertUtil {
|
|
|
|
aposeLic.setLicense(is);
|
|
|
|
aposeLic.setLicense(is);
|
|
|
|
result = true;
|
|
|
|
result = true;
|
|
|
|
} catch (Exception e) {
|
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
log.warn("Aspose Words License 加载异常", e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -225,8 +233,11 @@ public final class PDFConvertUtil {
|
|
|
|
//此处处理乱码和小方块
|
|
|
|
//此处处理乱码和小方块
|
|
|
|
//如果在本地运行,此处报错,请注释这个这是字体,主要是为了解决linux环境下面运行jar时找不到中文字体的问题
|
|
|
|
//如果在本地运行,此处报错,请注释这个这是字体,主要是为了解决linux环境下面运行jar时找不到中文字体的问题
|
|
|
|
//指定文件库内容路径
|
|
|
|
//指定文件库内容路径
|
|
|
|
|
|
|
|
// 字体目录同时包含 Windows 系统字体与 Linux 常见目录:
|
|
|
|
|
|
|
|
// setFontsFolders 会替换 aspose 的默认字体源,漏掉 Windows 字体目录时
|
|
|
|
|
|
|
|
// 宋体等中文字体不可见,转换出的 PDF 中文全部变成方框
|
|
|
|
FontSettings.getDefaultInstance().setFontsFolders(
|
|
|
|
FontSettings.getDefaultInstance().setFontsFolders(
|
|
|
|
new String[] {"/usr/share/fonts", "/usr/share/fonts/win"}
|
|
|
|
new String[] {"C:\\Windows\\Fonts", "/usr/share/fonts", "/usr/share/fonts/win"}
|
|
|
|
, true);
|
|
|
|
, true);
|
|
|
|
// 原始excel路径
|
|
|
|
// 原始excel路径
|
|
|
|
com.aspose.cells.Workbook wb = new com.aspose.cells.Workbook(inputStream);
|
|
|
|
com.aspose.cells.Workbook wb = new com.aspose.cells.Workbook(inputStream);
|
|
|
|
@ -329,8 +340,11 @@ public final class PDFConvertUtil {
|
|
|
|
//此处处理乱码和小方块
|
|
|
|
//此处处理乱码和小方块
|
|
|
|
//如果在本地运行,此处报错,请注释这个这是字体,主要是为了解决linux环境下面运行jar时找不到中文字体的问题
|
|
|
|
//如果在本地运行,此处报错,请注释这个这是字体,主要是为了解决linux环境下面运行jar时找不到中文字体的问题
|
|
|
|
//指定文件库内容路径
|
|
|
|
//指定文件库内容路径
|
|
|
|
|
|
|
|
// 字体目录同时包含 Windows 系统字体与 Linux 常见目录:
|
|
|
|
|
|
|
|
// setFontsFolders 会替换 aspose 的默认字体源,漏掉 Windows 字体目录时
|
|
|
|
|
|
|
|
// 宋体等中文字体不可见,转换出的 PDF 中文全部变成方框
|
|
|
|
FontSettings.getDefaultInstance().setFontsFolders(
|
|
|
|
FontSettings.getDefaultInstance().setFontsFolders(
|
|
|
|
new String[] {"/usr/share/fonts", "/usr/share/fonts/win"}
|
|
|
|
new String[] {"C:\\Windows\\Fonts", "/usr/share/fonts", "/usr/share/fonts/win"}
|
|
|
|
, true);
|
|
|
|
, true);
|
|
|
|
hslfSlideShow = new HSLFSlideShow(inputStream);
|
|
|
|
hslfSlideShow = new HSLFSlideShow(inputStream);
|
|
|
|
|
|
|
|
|
|
|
|
@ -411,8 +425,11 @@ public final class PDFConvertUtil {
|
|
|
|
//此处处理乱码和小方块
|
|
|
|
//此处处理乱码和小方块
|
|
|
|
//如果在本地运行,此处报错,请注释这个这是字体,主要是为了解决linux环境下面运行jar时找不到中文字体的问题
|
|
|
|
//如果在本地运行,此处报错,请注释这个这是字体,主要是为了解决linux环境下面运行jar时找不到中文字体的问题
|
|
|
|
//指定文件库内容路径
|
|
|
|
//指定文件库内容路径
|
|
|
|
|
|
|
|
// 字体目录同时包含 Windows 系统字体与 Linux 常见目录:
|
|
|
|
|
|
|
|
// setFontsFolders 会替换 aspose 的默认字体源,漏掉 Windows 字体目录时
|
|
|
|
|
|
|
|
// 宋体等中文字体不可见,转换出的 PDF 中文全部变成方框
|
|
|
|
FontSettings.getDefaultInstance().setFontsFolders(
|
|
|
|
FontSettings.getDefaultInstance().setFontsFolders(
|
|
|
|
new String[] {"/usr/share/fonts", "/usr/share/fonts/win"}
|
|
|
|
new String[] {"C:\\Windows\\Fonts", "/usr/share/fonts", "/usr/share/fonts/win"}
|
|
|
|
, true);
|
|
|
|
, true);
|
|
|
|
|
|
|
|
|
|
|
|
slideShow = new XMLSlideShow(inputStream);
|
|
|
|
slideShow = new XMLSlideShow(inputStream);
|
|
|
|
|