目录
一、Linux安装步骤
1.编译安装(9.55版本)
mkdir /usr/local/ghostscript
下载ghostscript.tar.gz
wget https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9550/ghostscript-9.55.0.tar.gz
tar -zxvf ghostscript-9.55.0.tar.gz
cd ghostscript-9.55.0
./configure --prefix=/usr/local/ghostscript
mkdir obj
mkdir bin
make all
make install
make so
2.配置环境变量
vi /etc/profile
写入 export PATH=$PATH:/usr/local/ghostscript/bin
3.查看是否安装成功
gs -v
4.配置动态链接库
ln -s /usr/local/ghostscript/bin/gs /usr/bin/gs
cp /usr/local/ghostscript/ghostscript-9.55.0/sobin/libgs.so.9.55 /usr/lib
ln -s /usr/lib/libgs.so.9.55.0 /usr/lib/libgs.so
vi /etc/ld.so.conf.d/libgs.conf
新文件写入 /usr/lib/libgs.so
ldconfig
二、Java使用Ghost4j
1.POM
<dependency>
<groupId>org.ghost4j</groupId>
<artifactId>ghost4j</artifactId>
<version>1.0.1</version>
</dependency>
<!-- 图片压缩处理-->
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.8</version>
</dependency>
2.pdf文件转图片
代码如下(示例):
public class Ghost4jUtils {
/**
* pdf转图片
*
* @param pdfFile pdf文件
* @param imgBaseDir 图片存储目录
* @return 图片完整路径
*/
public static List<String> transferPdf2Images(File pdfFile, String imgBaseDir) {
try {
PDFDocument document = new PDFDocument();
document.load(pdfFile);
SimpleRenderer renderer = new SimpleRenderer();
// 清晰度
renderer.setResolution(150);
List<Image> images = renderer.render(document);
List<String> pngList = new ArrayList<>();
for (int i = 0; i < images.size(); i++) {
RenderedImage renImage = (RenderedImage) images.get(i);
String pngPath = imgBaseDir + "/" + (i + 1) + ".png";
File imageFile = new File(pngPath);
ImageIO.write(renImage, "png", imageFile);
if (renImage.getWidth() > 960) {
//大于960px进行压缩
Thumbnails.of(imageFile).width(960)
//.size(960, 100)
.toFile(imageFile);
}
pngList.add(pngPath);
}
return pngList;
} catch (Exception e) {
e.printStackTrace();
}
return Collections.emptyList();
}
public static void main(String[] args) {
transferPdf2Images(new File("/tmp/pdf/test.pdf"), "/tmp/pdf/images");
}
}