生成pdf文件后如何保存此pdf的动态名称?
After generating pdf file how to save dynamic name for this pdf?
我使用文件路径生成 PDF 文档以创建名称为 test.PDF
的 PDF 文件。但是,我想借此机会让用户可以选择一个名称,并在生成 PDF 时使用该名称。我正在使用 iText 创建这样的 PDF 文件。
private String FILE = "e://test.PDF";
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(FILE));
document.open();
// add content
document.close();
如何更改此设置以便使用最终用户选择的文件名保存文件?
我已经写了这个概念证明,它完全按预期工作。当你 运行 它时, JFrame
打开:
JFrame
由一个 JButton
和文本 Push ATUL, push! 当你点击这个按钮时,一个对话框打开:
我select一个文件夹(test
),我选择一个文件名(test.pdf
)。然后单击 保存 。这是我的文件夹中显示的内容:
当我打开这个文件时,我看到:
这是示例的完整代码:
/*
* Example written in answer to:
*
*/
package sandbox.objects;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
/**
* @author Bruno Lowagie (iText Software)
*/
public class PdfOnButtonClick {
public class PdfActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
JFileChooser dialog = new JFileChooser();
int dialogResult = dialog.showSaveDialog(null);
if (dialogResult==JFileChooser.APPROVE_OPTION){
String filePath = dialog.getSelectedFile().getPath();
try {
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(filePath));
document.open();
document.add(new Paragraph("File with path " + filePath));
document.close();
}
catch(DocumentException de) {
de.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(300, 300);
frame.setTitle("ATUL doesn't know how to code");
frame.setResizable(true);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JButton button = new JButton("Push ATUL, push!");
button.addActionListener(new PdfOnButtonClick().new PdfActionListener());
frame.getContentPane().add(button);
frame.setVisible(true);
}
}
我使用文件路径生成 PDF 文档以创建名称为 test.PDF
的 PDF 文件。但是,我想借此机会让用户可以选择一个名称,并在生成 PDF 时使用该名称。我正在使用 iText 创建这样的 PDF 文件。
private String FILE = "e://test.PDF";
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(FILE));
document.open();
// add content
document.close();
如何更改此设置以便使用最终用户选择的文件名保存文件?
我已经写了这个概念证明,它完全按预期工作。当你 运行 它时, JFrame
打开:
JFrame
由一个 JButton
和文本 Push ATUL, push! 当你点击这个按钮时,一个对话框打开:
我select一个文件夹(test
),我选择一个文件名(test.pdf
)。然后单击 保存 。这是我的文件夹中显示的内容:
当我打开这个文件时,我看到:
这是示例的完整代码:
/*
* Example written in answer to:
*
*/
package sandbox.objects;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
/**
* @author Bruno Lowagie (iText Software)
*/
public class PdfOnButtonClick {
public class PdfActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
JFileChooser dialog = new JFileChooser();
int dialogResult = dialog.showSaveDialog(null);
if (dialogResult==JFileChooser.APPROVE_OPTION){
String filePath = dialog.getSelectedFile().getPath();
try {
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(filePath));
document.open();
document.add(new Paragraph("File with path " + filePath));
document.close();
}
catch(DocumentException de) {
de.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(300, 300);
frame.setTitle("ATUL doesn't know how to code");
frame.setResizable(true);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JButton button = new JButton("Push ATUL, push!");
button.addActionListener(new PdfOnButtonClick().new PdfActionListener());
frame.getContentPane().add(button);
frame.setVisible(true);
}
}