MyException - 我的异常网
当前位置:我的异常网» J2EE » 关于使用IText打印PDF 的有关问题

关于使用IText打印PDF 的有关问题

www.MyException.Cn  网友分享于:2013-09-07  浏览:99次
关于使用IText打印PDF 的问题
Java code
import java.io.FileOutputStream;

import com.lowagie.text.Cell;
import com.lowagie.text.Document;
import com.lowagie.text.Font;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Table;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfWriter;


public class Example {
    private static Font FONT_11;
    private static BaseFont msgothic;
    public static void main(String[] args) throws Exception{
        try{
            //定义字体
            msgothic = BaseFont.createFont("D:\\workspace\\UseIText\\MSMINCHO.TTC,0",BaseFont.IDENTITY_H,BaseFont.EMBEDDED);
            FONT_11=new Font(msgothic);
            FONT_11.setSize(11);
        }catch(Exception e){
            e.printStackTrace();
        }
        //为了测试方便,加入自动关闭打开acrord32
        Runtime.getRuntime().exec("tskill acrord32").waitFor();
        Thread.sleep(1000);
        Document document=new Document(PageSize.A4.rotate());
        //写文件
        PdfWriter writer=PdfWriter.getInstance(document, new FileOutputStream("d:/temp.pdf"));
        document.open();
        makeDocument(document);
        document.close();
        //为了测试方便,加入自动关闭打开acrord32
        Runtime.getRuntime().exec("\"c:\\Program Files\\Adobe\\Acrobat 7.0\\Reader\\acrord32.exe\" d:/temp.pdf").waitFor();
    }
    public static void makeDocument(Document document)throws Exception{
        //table大部份操做类似与html,下边是一些常用的参数
        //3是总的列数,也可以同时指定行数和列数new Table(3,4)
        Table table=new Table(3);
        //table的宽度
        table.setWidth(98);
        //类似html的cellSpaceing
        table.setSpacing(2);
        //每一列的宽度,是比例不是固定宽度
        table.setWidths(new int[]{10,30,60});
        //对齐方式
        table.setAlignment("CENTER");
        //table是否有边框
        table.setBorder(0);
        //cell默认是否有边框
        table.setDefaultCellBorder(0);
        //自动填充空白
        table.setAutoFillEmptyCells(true);
        int n=10;
        for(int i=0;i<n;i++){
            makeContent(table);
        }
        //新的一页要加上这句
        document.newPage();
        for(int i=0;i<n;i++){
            makeContent(table);
        }
        document.add(table);
    }
    public static void  makeContent(Table table)throws Exception {
        int len = table.columns();
        for(int i=0;i<len;i++){
            String testStr = "test"+i+"xxxxxxxxxxxxxxxxxxxxxx";
            Cell cell=new Cell(testStr);
            //max lines ,设置成1防止换行,配合cell宽度,可以实现自动截取
            cell.setMaxLines(1);
            table.addCell(cell);
        }
    }
    //构造一个自定义的cell
    public static Cell makeCell(int colspan,String align,int maxLines,Font font){
        Cell cell = null;
        Paragraph paragraph =null;
        try{
            //使用自定义字体
            paragraph=new Paragraph("testxxx",font);
            cell=new Cell(paragraph);
            //设置colspan,同样的方法可以设置rowspan
            if(colspan >1){
                cell.setColspan(colspan);
            }
            //设置对齐
            if((align != null) && (!align.equals(""))){
                cell.setHorizontalAlignment(align);
            }
            //设置maxlines
            cell.setMaxLines(maxLines);
        }catch(Exception e){
            e.printStackTrace();
        }
        return cell;
    }
}


以上是在网上copy的代码,我想问的时,象这种代码是不是不能直接打印pdf,
还是要手工点pdf文件的打印?

如果要直接打印pdf,上面的代码要怎么改?

目前我的打印需求是,打印已经存在的pdf文件。

------解决方案--------------------
不能直接打印pdf

------解决方案--------------------
目前我的打印需求是,打印已经存在的pdf文件。

如果是这个需求和java 有什么关系,直接点击pdf文件的打印按钮。

文章评论

看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
10个调试和排错的小建议
10个调试和排错的小建议
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
Java程序员必看电影
Java程序员必看电影
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
漫画:程序员的工作
漫画:程序员的工作
程序员必看的十大电影
程序员必看的十大电影
每天工作4小时的程序员
每天工作4小时的程序员
程序员都该阅读的书
程序员都该阅读的书
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
中美印日四国程序员比较
中美印日四国程序员比较
程序员的鄙视链
程序员的鄙视链
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
鲜为人知的编程真相
鲜为人知的编程真相
我是如何打败拖延症的
我是如何打败拖延症的
为什么程序员都是夜猫子
为什么程序员都是夜猫子
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
程序员应该关注的一些事儿
程序员应该关注的一些事儿
一个程序员的时间管理
一个程序员的时间管理
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
编程语言是女人
编程语言是女人
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
 程序员的样子
程序员的样子
如何成为一名黑客
如何成为一名黑客
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
程序员和编码员之间的区别
程序员和编码员之间的区别
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
老程序员的下场
老程序员的下场
那些争议最大的编程观点
那些争议最大的编程观点
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
我的丈夫是个程序员
我的丈夫是个程序员
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有