pdfbox初探

      有个需求,涉及到要将pdf文件转化为图片。在网上找了下资料,有一个公司提供了DLL文件,这个玩意要用到JNI,apache有一个开源的组件pdfbox,在open-open上看到的。把google里面的所有资料都看完了,有人提问怎么转化,就是没有解决方案。国外有个网站特缺德,看网友给的答案,还要邮箱注册,将会获得7天的免费试用。用电影《疯狂的赛车》里的一句话就是:我真鄙视你!还是javaeye好。不注册,看原码,写了个程序,但是总是报错。费了好大的劲,最后有未仁兄的博客上写到他遇到的同一个错误,有网友说是不支持中文的pdf。换了个全英文的pdf,成功得到了所要的图片。以下为pdfbox的两个简单应用,先写了个简单的读取内容的:

/*
 * 简单测试  读取pdf文档中的数据。中文不会出现问题
 */
public class BaseTest {

	public static void main(String[] args) throws Exception {
		InputStream in = new FileInputStream("E:\\TestDocument\\test中文.pdf");
		PDFParser p = new PDFParser(in);
		p.parse();
		COSDocument pdfDocument = p.getDocument();
		PDFTextStripper stripper = new PDFTextStripper();
		String s = stripper.getText(new PDDocument(pdfDocument)); 
		pdfDocument.close();
              System.out.println(s);
	}
}
 

将pdf转化为图片

String pdfUrl = "E:\\TestDocument\\test.pdf";//内容为中文的pdf会抛异常
		String[] s = {"-imageType","jpg",pdfUrl};
		PDFToImage.main(s);

 就是这三句了,转化是用到PDFToImage,该类只有一个静态的main方法。该方法中具体的参数设置有好几个,可以设置pdf的password,startPage,endPage,imageType,outputPrefix,和pdf的url,该处只是设置了imageType和url。参看原代码和上列,可以得到其他的参数设置方式。不能转化中文的,是pdfbox本身的不支持(但是读取文件内容,不会出现这样的情况)。由于该需求又不用了,研究到此为止,还有很多东西要看,以后遇到了再来解决这个万恶的不支持中文的问题。

 

你可能感兴趣的:(apache,jni,Google)