本人一新手,初次在Netbeans6.5中使用PDFBox
在PDFBox的官网上看到它的特性里有这么一条:“Create images from PDF pages”,看了http://incubator.apache.org/pdfbox/commandlineutilities/PDFToImage.html一点都没弄清楚应该怎样使用这一特性请各位高手帮帮忙,小弟现在很急!
万分感谢!
在PDFBox的官网上看到它的特性里有这么一条:“Create images from PDF pages”,看了http://incubator.apache.org/pdfbox/commandlineutilities/PDFToImage.html一点都没弄清楚应该怎样使用这一特性请各位高手帮帮忙,小弟现在很急!
万分感谢!
import org.apache.pdfbox.util.PDFImageWriter;public class PDFToImage{ private static final String PASSWORD = "-password";
private static final String START_PAGE = "-startPage";
private static final String END_PAGE = "-endPage";
private static final String IMAGE_TYPE = "-imageType";
private static final String OUTPUT_PREFIX = "-outputPrefix"; private PDFToImage(){ } public static void main( String[] args ) throws Exception {
String password = "";
String pdfFile = "c:/HelloWorld.pdf";
String outputPrefix = "d:/1/";
String outputfilename=null;
String imageType = "jpg";
int startPage = 1;
int endPage = Integer.MAX_VALUE;
for( int i=0; i<args.length; i++ ){
if( args[i].equals( PASSWORD ) ){
i++;
if( i >= args.length ){
usage();
}
password = args[i];
}else if( args[i].equals( START_PAGE ) ){
i++;
if( i >= args.length ){
usage();
}
startPage = Integer.parseInt( args[i] );
} else if( args[i].equals( END_PAGE ) ){
i++;
if( i >= args.length ){
usage();
}
endPage = Integer.parseInt( args[i] );
}else if( args[i].equals( IMAGE_TYPE ) ){
i++;
imageType = args[i];
}else if( args[i].equals( OUTPUT_PREFIX ) ){
i++;
outputPrefix = args[i];
}else{
if( pdfFile == null ){
pdfFile = args[i];
}
}
} if( pdfFile == null ) {
usage();
}else{
if(outputPrefix == null){
outputPrefix = pdfFile.substring( 0, pdfFile.lastIndexOf( '.' ));
}
outputfilename = pdfFile.substring( pdfFile.lastIndexOf("/"),pdfFile.lastIndexOf( '.' ));
PDDocument document = null;
try{
document = PDDocument.load( pdfFile );
//document.print();
if( document.isEncrypted() ){
try{
document.decrypt( password );
}catch( InvalidPasswordException e ){
if( args.length == 4 ){//they supplied the wrong password
System.err.println( "Error: The supplied password is incorrect." );
System.exit( 2 );
}else{
//they didn't suppply a password and the default of "" was wrong.
System.err.println( "Error: The document is encrypted." );
usage();
}
}
} //Make the call
PDFImageWriter W = new PDFImageWriter();
W.WriteImage(document, imageType, password, startPage, endPage, outputPrefix,outputfilename);
} catch(Exception e){
System.err.println( e);
}finally{
if( document != null ){
document.close();
}
}
}
} /**
* This will print the usage requirements and exit.
*/
private static void usage() {
System.err.println( "Usage: java org.apache.pdfbox.PDFToImage [OPTIONS] <PDF file>\n" +
" -password <password> Password to decrypt document\n" +
" -imageType <image type> (" + getImageFormats() + ")\n" +
" -outputPrefix <output prefix> Filename prefix for image files\n" +
" -startPage <number> The first page to start extraction(1 based)\n" +
" -endPage <number> The last page to extract(inclusive)\n" +
" <PDF file> The PDF document to use\n"
);
System.exit( 1 );
} private static String getImageFormats(){
StringBuffer retval = new StringBuffer();
String[] formats = ImageIO.getReaderFormatNames();
for( int i=0; i<formats.length; i++ ){
retval.append( formats[i] );
if( i+1<formats.length ){
retval.append( "," );
}
}
return retval.toString();
}
}