java源碼pdf
⑴ java導出PDF文檔
java導出pdf需要用到iText庫,iText是著名的開放源碼的站點sourceforge一個項目,是用於生成PDF文檔的一個java類庫。通過iText不僅可以生成PDF或rtf
的文檔,而且可以將XML、Html文件轉化為PDF文件。
iText的安裝非常方便,下載iText.jar文件後,只需要在系統的CLASSPATH中加入iText.jar的路徑,在程序中就可以使用
iText類庫了。
代碼如下:
public class createPdf {
//自己做的一個簡單例子,中間有圖片之類的
//先建立Document對象:相對應的 這個版本的jar引入的是com.lowagie.text.Document
Document document = new Document(PageSize.A4, 36.0F, 36.0F, 36.0F, 36.0F);
public void getPDFdemo() throws DocumentException, IOException{
//這個導出用的是 iTextAsian.jar 和iText-2.1.3.jar 屬於比較老的方法。 具體下在地址見:
//首先
//字體的定義:這里用的是自帶的jar裡面的字體
BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", false);
// 當然你也可以用你電腦裡面帶的字體庫
//BaseFont bfChinese = BaseFont.createFont("C:/WINDOWS/Fonts/SIMSUN.TTC,1",BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
//定義字體 注意在最新的包裡面 顏色是封裝的
Font fontChinese8 = new Font(bfChinese, 10.0F, 0, new Color(59, 54, 54));
//生成pdf的第一個步驟:
//保存本地指定路徑
saveLocal();
document.open();
ByteArrayOutputStream ba = new ByteArrayOutputStream();
// PdfWriter writer = PdfWriter.getInstance(document, ba);
document.open();
//獲取此編譯的文件路徑
String path = this.getClass().getClassLoader().getResource("").getPath();
//獲取根路徑
String filePath = path.substring(1, path.length()-15);
//獲取圖片路徑 找到你需要往pdf上生成的圖片
//這里根據自己的獲取的路徑寫 只要找到圖片位置就可以
String picPath = filePath +"\\WebContent" +"\\images\\";
//往PDF中添加段落
Paragraph pHeader = new Paragraph();
pHeader.add(new Paragraph(" 你要生成文字寫這里", new Font(bfChinese, 8.0F, 1)));
//pHeader.add(new Paragraph("文字", 字體 可以自己寫 也可以用fontChinese8 之前定義好的 );
document.add(pHeader);//在文檔中加入你寫的內容
//獲取圖片
Image img2 = Image.getInstance(picPath +"ccf-stamp-new.png");
//定義圖片在文檔中顯示的絕對位置
img2.scaleAbsolute(137.0F, 140.0F);
img2.setAbsolutePosition(330.0F, 37.0F);
//將圖片添加到文檔中
document.add(img2);
//關閉文檔
document.close();
/*//設置文檔保存的文件名
response.setHeader("Content-
disposition", "attachment;filename=\""+ new String(("CCF會員資格確認
函.pdf").getBytes("GBK"),"ISO-8859-1") + "\"");
//設置類型
response.setContentType("application/pdf");
response.setContentLength(ba.size());
ServletOutputStream out = response.getOutputStream();
ba.writeTo(out);
out.flush();*/
}
public static void main(String[]args) throws DocumentException, IOException{
createPdf pdf= new createPdf();
pdf.getPDFdemo();
}
//指定一個文件進行保存 這里吧文件保存到D盤的text.pdf
public void saveLocal() throws IOException, DocumentException{
//直接生成PDF 制定生成到D盤test.pdf
File file = new File("D:\\text2.pdf");
file.createNewFile();
PdfWriter.getInstance(document, new FileOutputStream(file));
}
}
⑵ java怎麼輸出pdf格式的文件
java導出pdf需要用到iText庫,iText是著名的開放源碼的站點sourceforge一個項目,是用於生成PDF文檔的一個java類庫。通過iText不僅可以生成PDF或rtf
的文檔,而且可以將XML、Html文件轉化為PDF文件。
iText的安裝非常方便,下載iText.jar文件後,只需要在系統的CLASSPATH中加入iText.jar的路徑,在程序中就可以使用
iText類庫了。
代碼如下:
public class createPdf {
//自己做的一個簡單例子,中間有圖片之類的
//先建立Document對象:相對應的 這個版本的jar引入的是com.lowagie.text.Document
Document document = new Document(PageSize.A4, 36.0F, 36.0F, 36.0F, 36.0F);
public void getPDFdemo() throws DocumentException, IOException{
//這個導出用的是 iTextAsian.jar 和iText-2.1.3.jar 屬於比較老的方法。 具體下在地址見:
//首先
//字體的定義:這里用的是自帶的jar裡面的字體
BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", false);
// 當然你也可以用你電腦裡面帶的字體庫
//BaseFont bfChinese = BaseFont.createFont("C:/WINDOWS/Fonts/SIMSUN.TTC,1",BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
//定義字體 注意在最新的包裡面 顏色是封裝的
Font fontChinese8 = new Font(bfChinese, 10.0F, 0, new Color(59, 54, 54));
//生成pdf的第一個步驟:
//保存本地指定路徑
saveLocal();
document.open();
ByteArrayOutputStream ba = new ByteArrayOutputStream();
// PdfWriter writer = PdfWriter.getInstance(document, ba);
document.open();
//獲取此編譯的文件路徑
String path = this.getClass().getClassLoader().getResource("").getPath();
//獲取根路徑
String filePath = path.substring(1, path.length()-15);
//獲取圖片路徑 找到你需要往pdf上生成的圖片
//這里根據自己的獲取的路徑寫 只要找到圖片位置就可以
String picPath = filePath +"\\WebContent" +"\\images\\";
//往PDF中添加段落
Paragraph pHeader = new Paragraph();
pHeader.add(new Paragraph(" 你要生成文字寫這里", new Font(bfChinese, 8.0F, 1)));
//pHeader.add(new Paragraph("文字", 字體 可以自己寫 也可以用fontChinese8 之前定義好的 );
document.add(pHeader);//在文檔中加入你寫的內容
//獲取圖片
Image img2 = Image.getInstance(picPath +"ccf-stamp-new.png");
//定義圖片在文檔中顯示的絕對位置
img2.scaleAbsolute(137.0F, 140.0F);
img2.setAbsolutePosition(330.0F, 37.0F);
//將圖片添加到文檔中
document.add(img2);
//關閉文檔
document.close();
/*//設置文檔保存的文件名
response.setHeader("Content-
disposition", "attachment;filename=\""+ new String(("CCF會員資格確認
函.pdf").getBytes("GBK"),"ISO-8859-1") + "\"");
//設置類型
response.setContentType("application/pdf");
response.setContentLength(ba.size());
ServletOutputStream out = response.getOutputStream();
ba.writeTo(out);
out.flush();*/
}
public static void main(String[]args) throws DocumentException, IOException{
createPdf pdf= new createPdf();
pdf.getPDFdemo();
}
//指定一個文件進行保存 這里吧文件保存到D盤的text.pdf
public void saveLocal() throws IOException, DocumentException{
//直接生成PDF 制定生成到D盤test.pdf
File file = new File("D:\\text2.pdf");
file.createNewFile();
PdfWriter.getInstance(document, new FileOutputStream(file));
}
}
⑶ 求編寫一個超級簡單的Java的程序源代碼
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class Login {
public static void main(String args[]) {
LoginFrm frame = new LoginFrm();
}
}
class LoginFrm extends JFrame implements ActionListener{
JLabel nameLabel=new JLabel("用戶名:");
JLabel pwdLabel=new JLabel("密碼:");
JTextField name=new JTextField(10);
JPasswordField password=new JPasswordField(10);
JButton butnSure=new JButton("確定");
JButton butnCancel=new JButton("取消");
public LoginFrm() {
super("登陸");
setBounds(500, 200, 280, 220);
setVisible(true);
setLayout(null);
nameLabel.setBounds(45, 20, 100, 25);
add(nameLabel);
add(name);
name.setBounds(105, 20, 110, 25);
add(pwdLabel);
pwdLabel.setBounds(45, 60, 100, 25);
add(password);
password.setBounds(105, 60, 110, 25);
add(butnSure);
butnSure.setBounds(45, 100, 80, 25);
add(butnCancel);
butnCancel.setBounds(135, 100, 80, 25);
butnSure.addActionListener(this);
butnCancel.addActionListener(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
validate();//刷新橡猜
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() ==butnSure){
System.out.println("用戶名:"+name.getText());
System.out.println("密碼:"+name.getText());
if("admin".equals(name.getText().trim())&&"123".equals(password.getText().trim())){
this.dispose();
new MainFrm("碼迅用戶界面",name.getText().trim(),password.getText().trim());
}else {
JOptionPane.showMessageDialog(this, "用遲如此戶不存在");
}
}else if(e.getSource()==butnCancel){
System.exit(1);
}
}
class MainFrm extends JFrame{
private JLabel info;
public MainFrm(String s,String name,String password) {
super(s);
setBounds(400, 200, 500, 400);
setLayout(new FlowLayout());
info=new JLabel("登陸成功,用戶名:"+name+",密碼:"+password);
add(info);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
validate();
}
}
}
⑷ 求java題源代碼,最好有注釋,
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.*;
import javax.swing.*;
/**
* 多線程,小球演示. 打開Windows任務管理器,可看到線程變化。 可搜索到,run()方法/.start()
*
* : 程序技巧體會: 所謂產生一個小球,即是 new 其類對象,其屬性攜帶畫小球的 坐標、顏色、所在容器 等參數。
*
* 一個類,屬性用來作為參數容器用, 方法....完成功能。
* */
// 運行類
public class BouncePress {
//
public static void main(String[] args) {
JFrame frame = new BouncePressFrame(); // 生成窗口。執行構造。-----業務邏輯。
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // similar to
// window
// listener
frame.show();
}
}
class BouncePressFrame extends JFrame {
private BallPressCanvas canvas;
public BouncePressFrame() {
setSize(600, 500); // 窗口大小
setTitle("Bounce Ball");
Container contentPane = getContentPane(); // Swing的窗口不能直接放入東西,只能在其上的ContentPane上放。
canvas = new BallPressCanvas(); // 生成一個新面板。-----canvas
contentPane.add(canvas, BorderLayout.CENTER); // 窗口中心 加入該面板。
JPanel buttonPanel = new JPanel(); // 再生成一個新面板。----buttonPanel
// 調用本類方法addButton。
addButton(buttonPanel, "Start", // 生成一個按鈕"Start"---加入面板buttonPanel
new ActionListener() { // |------>按鈕綁上 action監聽器。
public void actionPerformed(ActionEvent evt) { // | 小球容器對象的
addBall(Thread.NORM_PRIORITY - 4, Color.black); // 事件處理時,執行---addBall()方法。--->產生小球(參數對象)--->加入List中--->開始畫球。
}
}); // 按一次,addBall()一次--->產生一個新小球--->加入List中--->開始畫此新小球。
// --->畫球線程BallPressThread的run()--->小球(參數對象).move()--->每次畫時,先移動,再判斷,再畫。
// --->BallPressCanvas類的canvas對象.paint()--->自動調BallPressCanvas類的paintComponent(Graphics
// g)方法。
// --->該方法,從List中循環取出所有小球,第i個球,--->調該小球BallPress類
// .draw()方法--->調Graphics2D方法畫出小球。--使用color/
addButton(buttonPanel, "Express", new ActionListener() {
public void actionPerformed(ActionEvent evt) {
addBall(Thread.NORM_PRIORITY + 2, Color.red);
}
});
addButton(buttonPanel, "Close", new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.exit(0);
}
});
contentPane.add(buttonPanel, BorderLayout.SOUTH);
}
public void addButton(Container c, String title, ActionListener listener) {
JButton button = new JButton(title); // 生成一個按鈕。
c.add(button); // 加入容器中。
button.addActionListener(listener); // 按鈕綁上 action監聽器。
}
/** 主要業務方法。 */
public void addBall(int priority, Color color) {
// 生成 小球(參數對象)
BallPress b = new BallPress(canvas, color); // 生成BallPress對象,攜帶、初始化
// 畫Ball形小球,所需參數:所在容器組件,所需color--black/red.
// 小球加入 List中。
canvas.add(b); // 面板canvas 的ArrayList中 加入BallPress對象。
BallPressThread thread = new BallPressThread(b); // 生成畫小球的線程類BallPressThread對象。傳入BallPress對象(攜帶了畫球所需
// 容器、color參數)。
thread.setPriority(priority);
thread.start(); // call run(), ball start to move
// 畫球線程開始。--->BallPressThread的run()--->小球(參數對象).move()--->先移動,再畫。canvas.paint--->BallPressCanvas類的
}
}
// 畫球的線程類。
class BallPressThread extends Thread {
private BallPress b;
public BallPressThread(BallPress aBall) {
b = aBall;
}
// 畫球開始。
public void run() {
try {
for (int i = 1; i <= 1000; i++) { // 畫1000次。
b.move(); // 每次畫時,先移動,再判斷,再畫。
sleep(5); // 所以移動比Bounce.java的球慢。
}
} catch (InterruptedException e) {
}
}
}
// swing面板類.
// 作用1) 本類面板對象.paint()方法---->自動繪制面板,且自動調paintComponent(Graphics
// g)方法,--->重寫該方法,繪制面板(及其上組件)。
// 作用2) 該類對象 屬性ArrayList balls---兼作小球(參數對象)的容器。
class BallPressCanvas extends JPanel {
private ArrayList balls = new ArrayList();
public void add(BallPress b) {
balls.add(b); // 向ArrayList中添加球。當按下按鈕,添加多個球時,都保存在這個List中。
}
// 重寫了 javax.swing.JComponent的 paintComponent()方法。
// paint()方法自動調用該方法。
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
for (int i = 0; i < balls.size(); i++) { // 循環
BallPress b = (BallPress) balls.get(i); // 從List中取出第i個球,
b.draw(g2); // 畫此球。
}
}
}
/**
* 畫出球。
*
* 在 canvas上畫出,color色的小球圖形。
*
* 屬性,可用於攜帶畫小球所需參數。
*
*
*
* @author congan
*
*/
class BallPress {
private Component canvas;
private Color color;
private int x = 0;
private int y = 0;
private int dx = 2;
private int dy = 2;
// 構造 初始化 容器 顏色 參數。
public BallPress(Component c, Color aColor) {
canvas = c;
color = aColor;
}
// 制定位置,畫出小球。
public void draw(Graphics2D g2) {
g2.setColor(color);
g2.fill(new Ellipse2D.Double(x, y, 15, 15)); // ellipse:橢圓形
}
// 移動小球。
// 每次畫時,先移動,再判斷,再畫。
// 該方法每次執行,畫小球的起點坐標 (x,y), 每次各自+2, 即斜向右下運動。
public void move() {
x += dx; // x=x+dx; 畫小球的起點坐標 (x,y), 每次各自+2, 即斜向右下運動。
y += dy; // y=y+dy;
if (x < 0) { // 小球已到左邊框。保證,從左邊框開始畫。
x = 0;
dx = -dx; // 小球橫坐標變化值取反。開始反向運動。
}
if (x + 15 >= canvas.getWidth()) { // 小球右邊已經到畫板右邊。
x = canvas.getWidth() - 15;
dx = -dx; // 開始反向運動。
}
if (y < 0) { // 保證,從頂框開始畫。
y = 0;
dy = -dy;
}
if (y + 15 >= canvas.getHeight()) { // 小球已到畫板頂。
y = canvas.getHeight() - 15;
dy = -dy;
}
canvas.paint(canvas.getGraphics()); // 畫出面板對象canvas----(及其上所有組件)
// //.paint()方法,自動調用
}
}
/*import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.*;
import javax.swing.*;
*//**
* 單線程,小球演示 搜索不到,run()方法/.start()
*//*
public class Bounce {
public static void main(String[] args) {
JFrame frame = new BounceFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // similar to
// window
// listener
frame.show();
}
}
不懂的再問啊。。。
⑸ 求編寫一個超級簡單的Java的程序源代碼
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
public class Caculator extends JFrame implements ActionListener,KeyListener{
private JTextField tf=new JTextField();
private float x=0;
private float y=0;
private int code=0;
private boolean enable;
private boolean first;
private String str="";
public Caculator(){
Container ct=this.getContentPane();
this.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
tf.setHorizontalAlignment(JTextField.RIGHT);
//tf.setText("0");
enable=true;
first=true;
ct.add(tf,BorderLayout.NORTH);
JPanel panel=new JPanel();
panel.setLayout(new GridLayout(4,4));
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
if(JOptionPane.YES_OPTION==JOptionPane.showConfirmDialog(Caculator.this,"確定要關閉程序嗎?","提示",JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE)){
e.getWindow().setVisible(false);
e.getWindow().dispose();
System.exit(0);
}
}
});
Button btn=null;
btn=new Button("1");
panel.add(btn);
btn.addActionListener(this);
btn.addKeyListener(this);
btn=new Button("2");
panel.add(btn);
btn.addActionListener(this);
btn.addKeyListener(this);
btn=new Button("3");
panel.add(btn);
btn.addActionListener(this);
btn.addKeyListener(this);
btn=new Button("+");
panel.add(btn);
btn.addActionListener(this);
btn.addKeyListener(this);
btn=new Button("4");
panel.add(btn);
btn.addActionListener(this);
btn.addKeyListener(this);
btn=new Button("5");
panel.add(btn);
btn.addActionListener(this);
btn.addKeyListener(this);
btn=new Button("6");
panel.add(btn);
btn.addActionListener(this);
btn.addKeyListener(this);
btn=new Button("-");
panel.add(btn);
btn.addActionListener(this);
btn.addKeyListener(this);
btn=new Button("7");
panel.add(btn);
btn.addActionListener(this);
btn.addKeyListener(this);
btn=new Button("8");
panel.add(btn);
btn.addActionListener(this);
btn.addKeyListener(this);
btn=new Button("9");
panel.add(btn);
btn.addActionListener(this);
btn.addKeyListener(this);
btn=new Button("*");
panel.add(btn);
btn.addActionListener(this);
btn.addKeyListener(this);
btn=new Button("0");
panel.add(btn);
btn.addActionListener(this);
btn.addKeyListener(this);
btn=new Button(".");
panel.add(btn);
btn.addActionListener(this);
btn.addKeyListener(this);
btn=new Button("/");
panel.add(btn);
btn.addActionListener(this);
btn.addKeyListener(this);
btn=new Button("=");
panel.add(btn);
btn.addActionListener(this);
btn.addKeyListener(this);
this.add(panel,BorderLayout.CENTER);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Caculator mainframe=new Caculator();
mainframe.setTitle("testing Caculator");
mainframe.setSize(400,400);
mainframe.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getActionCommand()=="+"){
x= Float.parseFloat(tf.getText());
code=0;
this.tf.setText("");
}
if(e.getActionCommand()=="-"){
x= Float.parseFloat(tf.getText());
code=1;
this.tf.setText("");
}
if(e.getActionCommand()=="*"){
x= Float.parseFloat(tf.getText());
code=2;
this.tf.setText("");
}
if(e.getActionCommand()=="/"){
x= Float.parseFloat(tf.getText());
code=3;
this.tf.setText("");
}
if(e.getActionCommand()!="+"&&e.getActionCommand()!="-"&&e.getActionCommand()!="*"&&e.getActionCommand()!="/"&&e.getActionCommand()!="="){
if(enable){
if(first){
System.out.println("haha");
tf.setText(e.getActionCommand());
first=false;
}
else {
tf.setText(tf.getText()+e.getActionCommand());
}
}
else {
tf.setText(e.getActionCommand());
enable=true;
}
}
if(e.getActionCommand()=="="){
switch(code){
case 0:
y=x+Float.parseFloat(this.tf.getText());
tf.setText(Float.toString(y));
enable=false;
break;
case 1:
y=x-Float.parseFloat(this.tf.getText());
tf.setText(Float.toString(y));
enable=false;
break;
case 2:
y=x*Float.parseFloat(this.tf.getText());
tf.setText(Float.toString(y));
enable=false;
break;
case 3:
y=x/Float.parseFloat(this.tf.getText());
tf.setText(Float.toString(y));
enable=false;
break;
}
}
}
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
if(e.getKeyChar()=='+'){
x= Float.parseFloat(tf.getText());
code=0;
this.tf.setText("");
}
if(e.getKeyChar()=='-'){
x= Float.parseFloat(tf.getText());
code=1;
this.tf.setText("");
}
if(e.getKeyChar()=='*'){
x= Float.parseFloat(tf.getText());
code=2;
this.tf.setText("");
}
if(e.getKeyChar()=='/'){
x= Float.parseFloat(tf.getText());
code=3;
this.tf.setText("");
}
if(e.getKeyChar()=='1'||e.getKeyChar()=='2'||e.getKeyChar()=='3'||e.getKeyChar()=='0'
||e.getKeyChar()=='4'||e.getKeyChar()=='5'||e.getKeyChar()=='6'||e.getKeyChar()=='.'
||e.getKeyChar()=='7'||e.getKeyChar()=='8'||e.getKeyChar()=='9'){
System.out.println("hai");
if(enable){
if(first){
System.out.println("hehe");
str=Character.toString(e.getKeyChar());
tf.setText(str);
first=false;
}
else {
str=Character.toString(e.getKeyChar());
tf.setText(tf.getText()+str);
}
}
else {
str=Character.toString(e.getKeyChar());
tf.setText(str);
enable=true;
}
}
if(e.getKeyCode()==KeyEvent.VK_ENTER){
switch(code){
case 0:
y=x+Float.parseFloat(this.tf.getText());
tf.setText(Float.toString(y));
enable=false;
break;
case 1:
y=x-Float.parseFloat(this.tf.getText());
tf.setText(Float.toString(y));
enable=false;
break;
case 2:
y=x*Float.parseFloat(this.tf.getText());
tf.setText(Float.toString(y));
enable=false;
break;
case 3:
y=x/Float.parseFloat(this.tf.getText());
tf.setText(Float.toString(y));
enable=false;
break;
}
}
}
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
}