2021SC@SDUSC
目录
(一)OfficeToPdf类
office——>Pdf工具类
核心方法:文件类型转换
public static void converterFile(File inputFile,
String outputFilePath_end,
OfficeDocumentConverter converter) {
File outputFile = new File(outputFilePath_end);
if (!outputFile.getParentFile().exists()) {
outputFile.getParentFile().mkdirs();
}
converter.convert(inputFile, outputFile);
}
假如目标路径不存在,则新建该路径
核心方法:文件类型转换
converter.convert(inputFile, outputFile);
office2pdf方法:inputFilePath为远程端下载到kkfile服务端的文件路径
outputFilePath为文件转换后的路径
public void office2pdf(String inputFilePath, String outputFilePath) {
OfficeDocumentConverter converter = converterUtils.getDocumentConverter();
if (null != inputFilePath) {
File inputFile = new File(inputFilePath);
if (null == outputFilePath) {
String outputFilePath_end = getOutputFilePath(inputFilePath);
if (inputFile.exists()) {
converterFile(inputFile, outputFilePath_end,converter);
}
} else {
if (inputFile.exists()) {
converterFile(inputFile, outputFilePath, converter);
}
}
}
}
先判断目标文件路径是否为空,获取转换后的文件路径。找不到源文件,则返回
public static String getOutputFilePath(String inputFilePath) {
return inputFilePath.replaceAll("."+ getPostfix(inputFilePath), ".pdf");
}
public static String getPostfix(String inputFilePath) {
return inputFilePath.substring(inputFilePath.lastIndexOf(".") + 1);
}
(二)CadUtils类
com.aspose.cad.Image cadImage = com.aspose.cad.Image.load(inputFilePath);
CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
cadRasterizationOptions.setLayouts(new String[]{"Model"});
cadRasterizationOptions.setNoScaling(true);
cadRasterizationOptions.setBackgroundColor(Color.getWhite());
cadRasterizationOptions.setPageWidth(cadImage.getWidth());
cadRasterizationOptions.setPageHeight(cadImage.getHeight());
cadRasterizationOptions.setPdfProductLocation("center");
cadRasterizationOptions.setAutomaticLayoutsScaling(true);
cadRasterizationOptions.setDrawType(CadDrawTypeMode.UseObjectColor);
PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setVectorRasterizationOptions(cadRasterizationOptions);
File outputFile = new File(outputFilePath);
OutputStream stream;
try {
stream = new FileOutputStream(outputFile);
cadImage.save(stream, pdfOptions);
cadImage.close();
return true;
} catch (FileNotFoundException e) {
logger.error("PDFFileNotFoundException,inputFilePath:{}", inputFilePath, e);
return false;
}
Aspose.CAD是用于.Net和Java平台的独立软件库,可读取CAD文件(例如DWG,DXF,DNG,IFC,STL文件)并将其内容导出为PDF文件和光栅图像。 它不需要其他软件即可工作-不需要AutoCAD或ReadDWG,它本身即可工作。
它还允许部分导出文件,仅导出DWG和DXF文件中的特定实体或图层,在导出过程中替换CAD文件中指定的颜色或字体,以及导出3D实体。