将 JFileChooser 与 PDFBox 一起使用时,文件不会保存为 pdf,但保存时没有扩展名
When using JFileChooser with PDFBox, the file does not save as a pdf but it saves with no extension
调用JFileChooser时,保存的文件不是pdf。换句话说,我调用 JFileChooser 并用某个名称保存它。然后,当我转到该位置时,该文件没有 .pdf 扩展名,我尝试使用 .getName() 然后向其添加 .pdf 扩展名并将其设置为等于 .getName() 但这不起作用。我该如何解决这个问题?
我为此创建了一个 JavaFX 项目,那里的 window 只显示一个按钮,单击该按钮时会调用方法 "methodActivate"。
package application;
import javafx.application.Application;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import java.io.File;
import java.io.IOException;
import javax.swing.JFileChooser;
import org.apache.pdfbox.pdmodel.*;
public class Main extends Application {
@FXML
private Button button;
@Override
public void start(Stage primaryStage) {
try {
Parent root = FXMLLoader.load(getClass().getResource("\Pdfbox.fxml"));
Scene scene = new Scene(root,500,300);
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
@FXML
public void methodActivate() throws IOException{
PDDocument doc =
new PDDocument();
doc.addPage(new PDPage());
boolean bool = false;
try{
JFileChooser fileChooser = new JFileChooser();
File file = fileChooser.getSelectedFile();
doc.save(file);
doc.close();
}
doc.close();
} catch (Exception io){
System.out.println(io);
}
}
}
如果您在 JFileChooser window 中输入不带 .pdf 的名称 "myPdf",那么它将使用该名称保存。
JFileChooser 不会自动附加文件类型,所以如果这是您需要的,那么您可以检查它
public File checkFileName(File file) {
if (!file.getAbsolutePath().toLowerCase().endsWith(".pdf")) {
return new File(file.getAbsolutePath() + ".pdf");
} else {
return file;
}
}
有关 JFileChooser
的详细信息,请参阅 javadoc
调用JFileChooser时,保存的文件不是pdf。换句话说,我调用 JFileChooser 并用某个名称保存它。然后,当我转到该位置时,该文件没有 .pdf 扩展名,我尝试使用 .getName() 然后向其添加 .pdf 扩展名并将其设置为等于 .getName() 但这不起作用。我该如何解决这个问题?
我为此创建了一个 JavaFX 项目,那里的 window 只显示一个按钮,单击该按钮时会调用方法 "methodActivate"。
package application;
import javafx.application.Application;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import java.io.File;
import java.io.IOException;
import javax.swing.JFileChooser;
import org.apache.pdfbox.pdmodel.*;
public class Main extends Application {
@FXML
private Button button;
@Override
public void start(Stage primaryStage) {
try {
Parent root = FXMLLoader.load(getClass().getResource("\Pdfbox.fxml"));
Scene scene = new Scene(root,500,300);
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
@FXML
public void methodActivate() throws IOException{
PDDocument doc =
new PDDocument();
doc.addPage(new PDPage());
boolean bool = false;
try{
JFileChooser fileChooser = new JFileChooser();
File file = fileChooser.getSelectedFile();
doc.save(file);
doc.close();
}
doc.close();
} catch (Exception io){
System.out.println(io);
}
}
}
如果您在 JFileChooser window 中输入不带 .pdf 的名称 "myPdf",那么它将使用该名称保存。 JFileChooser 不会自动附加文件类型,所以如果这是您需要的,那么您可以检查它
public File checkFileName(File file) {
if (!file.getAbsolutePath().toLowerCase().endsWith(".pdf")) {
return new File(file.getAbsolutePath() + ".pdf");
} else {
return file;
}
}
有关 JFileChooser
的详细信息,请参阅 javadoc