lotus中的视图文档输出ViewToPDF

类别:Java 点击:0 评论:0 推荐:

用到了iText库,可以下载,

import lotus.domino.*;
import java.io.*;
import com.lowagie.text.*;
import com.lowagie.text.pdf.PdfWriter;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import com.lowagie.text.pdf.PdfWriter;

public class ViewToPDF extends NotesThread{
   
    public static void main(String args[]){
        ViewToPDF t = new ViewToPDF();
        t.start();
    }
   
    /** 退出程序 */
    private void exitForm(java.awt.event.WindowEvent evt) {
        System.exit(0);
    }
   
    /* 按钮*/
    private void buttonAction(java.awt.event.ActionEvent evt, Frame frame, String serverName, String dbName, String viewName, String pageOrient){
        try{
            NotesThread.sinitThread();
            Session sess = NotesFactory.createSession();
            System.out.println("访问数据库 " + dbName + " on Server: " + serverName);
            Database db = sess.getDatabase(serverName, dbName);
            DocumentCollection collection = db.getAllDocuments();
            System.out.println("视图: " + viewName + " in Database: " + dbName);
            View view = db.getView(viewName);
           
            frame.dispose();
            FileDialog fd = new FileDialog(new Frame(),"Save As..",FileDialog.SAVE);
            fd.show();
           
            String path = fd.getDirectory() + fd.getFile();

            com.lowagie.text.Document pdfDoc;
           
            if(pageOrient.equals("Landscape")){
                pdfDoc = new com.lowagie.text.Document(PageSize.A4.rotate());
            }else{
                pdfDoc = new com.lowagie.text.Document();
            }
            PdfWriter.getInstance(pdfDoc, new FileOutputStream(path));
           
            System.out.println("Creating document: " + path);
           
            pdfDoc.open();
            
         
            Table aTable = new Table(view.getColumnCount());
            aTable.setBorderWidth(1);
            aTable.setBorderColor(new Color(0,0,0));
            aTable.setAutoFillEmptyCells(true);
            com.lowagie.text.Font font = new com.lowagie.text.Font(2, 9, com.lowagie.text.Font.NORMAL);
            Cell cell = new Cell("header");
            Vector columnNames = view.getColumnNames();
            for (int k=0; k<columnNames.size(); k++) {
                cell = new Cell((String)columnNames.elementAt(k));
                cell.setBackgroundColor(new Color(192,192,192));
                aTable.addCell(cell);
            }
            ViewEntryCollection vec = view.getAllEntries();
            ViewEntry tmpEntry;
            System.out.println("Documents to Process: " + vec.getCount());
            ViewEntry entry = vec.getFirstEntry();
            while (entry != null) {
                Vector v = entry.getColumnValues();
                for (int i=0; i<v.size(); i++) {
                    String vName = v.elementAt(i).toString();
                    aTable.addCell(vName);
                }
                tmpEntry = vec.getNextEntry();
                entry.recycle();
                entry = tmpEntry;
                tmpEntry = null;
            }
            pdfDoc.add(aTable);
            pdfDoc.close();
           
            /* 对象释放 */
            vec.recycle();
            view.recycle();
            db.recycle();
            NotesThread.stermThread();
            System.runFinalization();
            System.gc();
           
            System.out.println("文档: " + path + " 产生!");
            System.exit(0);
        }catch(Exception e){
            System.out.println("程序遇到错误:");
            e.printStackTrace();
            System.exit(0);
        }
    }
   
    public void runNotes(){
        try{
           
            final Frame frame = new Frame("User Input:");
            frame.setSize(300, 400);
            Color color = new Color(100,100,255);
            frame.setBackground(color);
            frame.setLayout(new java.awt.GridLayout(11, 1));
            frame.addWindowListener(new java.awt.event.WindowAdapter() {
                public void windowClosing(java.awt.event.WindowEvent evt) {
                    exitForm(evt);
                }
            });
           
            Label label1 = new java.awt.Label();
            label1.setFont(new java.awt.Font("Arial", 1, 14));
            label1.setText("Server Name:");
            Label label2 = new java.awt.Label();
            label2.setFont(new java.awt.Font("Arial", 1, 14));
            label2.setText("Database Name:");
            Label label3 = new java.awt.Label();
            label3.setFont(new java.awt.Font("Arial", 1, 14));
            label3.setText("View Name:");
            Label label4 = new java.awt.Label();
            label4.setFont(new java.awt.Font("Arial", 1, 14));
            label4.setText("Page Orientation:");
            Label label5 = new java.awt.Label();
            label5.setFont(new java.awt.Font("Arial", 1, 9));
            label5.setText("Developed by: ");
            label5.setBackground(new Color(255, 255, 255));
           
            final TextField textField1 = new java.awt.TextField();
            final TextField textField2 = new java.awt.TextField();
            final TextField textField3 = new java.awt.TextField();
            final Choice choice1 = new java.awt.Choice();
            choice1.add("Landscape");
            choice1.add("Portrait");
           
            Button button1 = new java.awt.Button();
            button1.setFont(new java.awt.Font("Arial", 1, 14));
            button1.setLabel("OK");
            button1.setBackground(new Color(0, 128, 0));
            Button button2 = new java.awt.Button();
            button2.setFont(new java.awt.Font("Arial", 1, 14));
            button2.setLabel("Cancel");
            button2.setBackground(new Color(255, 128, 128));
            button1.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    String serverName= textField1.getText();
                    String dbName = textField2.getText();
                    String viewName = textField3.getText();
                    String pageOrient = choice1.getSelectedItem();
                    buttonAction(evt, frame, serverName, dbName, viewName, pageOrient);
                }
            });
            button2.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    System.exit(0);
                }
            });
           
            frame.add(label1);
            frame.add(textField1);
            frame.add(label2);
            frame.add(textField2);
            frame.add(label3);
            frame.add(textField3);
            frame.add(label4);
            frame.add(choice1);
            frame.add(button1);
            frame.add(button2);
            frame.add(label5);
            frame.pack();
            frame.show();
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}


 

本文地址:http://com.8s8s.com/it/it12859.htm