如何在用户选择的运行时使用apache pdfbox在pdf中添加图像

时间:2019-04-16 15:35:49

标签: java pdfbox

我正在一个项目中,我需要在运行时在pdf中添加用户选择的图像。我有一组固定的图像,用户只能从中选择。 pdf是使用apache pdfbox生成的,而我使用的是netbeans IDE。

到目前为止,我已经添加了直接提供图像路径的图像和图像名称,它可以正常工作,但我一直坚持如何添加用户选择的图像以及如何指定路径?如何设置哪个变量?

以下是显示我如何实现它的代码。希望很清楚。

if (finalpdf.Images != null){

//finalpdf is the pdf to write everything to
//User's choice will be stored in Images variable

PDImageXObject image = PDImageXObject.createFromFile("C:/Users/HP/PDFProject/../Room.png", pdf);
AddImages(content,image ,0,0 );
}



public static void AddImages (PDPageContentStream content,PDImageXObject image,float x, float y) throws IOException{

content.drawImage(image, x,y);

}

最终用户将拥有一个pdf文件,他将在其中输入文本并在给定的图像中添加选择的图像。目前不关心文本。 在测试类中,我将值作为“ Room.png”传递给了图像变量,这是图像名称之一。

1 个答案:

答案 0 :(得分:0)

您可以在Java 8中使用javafx(import javafx。*;)。还需要一个按钮来打开文件。

    button.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent event) {
            FileChooser fileChooser = new FileChooser();
            fileChooser.setInitialDirectory(Paths.get(System.getProperty("user.home")).toFile());
            final File file = fileChooser.showOpenDialog(scene.getWindow());
            if(null==file)
                return;
            System.out.println(file.getAbsolutePath());
        }
    });