提示画像ですが画像にあるpdfbox.jar,commons.jarを参照して.classを実行したいのですが上手く出来ません。複数の.jarファイルがある場合どうやって指定すればいいのでしょうか?ecelipse上で完成したいのでそれをコマンドラインで実行できるか検証したいのですが
参考サイト: https://nompor.com/2018/01/25/post-2397/
.batファイルです。
java -classpath pdfbox.jar; commons.jar; Main pause
java
1package sample; 2 3import java.io.IOException; 4import java.io.File; 5import javax.imageio.ImageIO; 6import java.awt.image.BufferedImage; 7 8import java.util.ArrayList; 9import java.util.Scanner; 10import java.util.List; 11 12 13import org.apache.pdfbox.pdmodel.PDDocument; 14import org.apache.pdfbox.pdmodel.PDPage; 15import org.apache.pdfbox.pdmodel.PDPageContentStream; 16import org.apache.pdfbox.pdmodel.common.PDRectangle; 17import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; 18 19 20public class Main 21{ 22 //画像クラス 23 static class Image 24 { 25 //コンストラクタ 26 public Image(int w,int h,String n) 27 { 28 width = w; 29 height = h; 30 path = n; 31 } 32 33 34 public int width; //横 35 public int height; //縦 36 public String path; //パス 37 } 38 39 //ファイルの画像パスを取得 40 static public void GetDirectory(File dir,List<Image> list) 41 { 42 for(int i = 0; i < dir.listFiles().length; i++) 43 { 44 45 try 46 { 47 BufferedImage b = ImageIO.read(dir.listFiles()[i]); 48 Image img = new Image(b.getWidth(),b.getHeight(),dir.listFiles()[i].getPath()); 49 50 list.add(img); 51 52 b = null; 53 } 54 catch (IOException e) 55 { 56 e.printStackTrace(); 57 } 58 59 60 System.out.println("###################################"); 61 System.out.println("Width: " + list.get(list.size() -1).width); 62 System.out.println("Height: " + list.get(list.size() -1).height); 63 System.out.println("Path: " + list.get(list.size() -1).path); 64 System.out.println("###################################\n"); 65 } 66 } 67 68 //PDFファイルを生成 69 static void GeneratePDF(List<Image> list,List<String> pathList,File fileName) 70 { 71 try 72 { 73 PDDocument document = new PDDocument(); //ドキュメント 74 List<PDPage> page = new ArrayList<>(); //ページ 75 76 for(Image image : list) 77 { 78 79 80 PDRectangle rec = new PDRectangle(); 81 rec.setUpperRightX(0); 82 rec.setUpperRightY(0); 83 rec.setLowerLeftX(image.width); 84 rec.setLowerLeftY(image.height); 85 86 page.add(new PDPage(rec)); 87 document.addPage(page.get(page.size() -1)); 88 } 89 90 91 92 for(int i = 0; i < list.size(); i++) 93 { 94 95 PDImageXObject xImage = PDImageXObject.createFromFile(list.get(i).path,document); 96 PDPageContentStream stream = new PDPageContentStream(document,page.get(i)); 97 stream.drawImage(xImage, 0,0); 98 99 100 stream.close(); 101 } 102 103 104 105 106 107 document.save(fileName.getName() +".pdf"); 108 109 document.close(); 110 111 112 113 114 115 116 }catch(IOException e) 117 { 118 e.printStackTrace(); 119 } 120 } 121 122 123 public static void main(String args[]) 124 { 125 Scanner scanner = new Scanner(System.in); 126 List<Image> imageList = new ArrayList<>(); 127 128 System.out.print("Directory: "); 129 String fileName = scanner.next(); 130 File f = new File(fileName); 131 132 GetDirectory(f,imageList); //画像パス読み込み 133 134 135 List<String> fileList = new ArrayList<>(); 136 GeneratePDF(imageList,fileList,f); //PDFファイルを生成 137 138 139 140 141 scanner.close(); 142 143 } 144} 145 146
あなたの回答
tips
プレビュー