java中怎么利用poi和itext生成pdf文档

java中怎么利用poi和itext生成pdf文档,第1张

生成PDF文档代码如下:

package poi.itext

import java.io.FileOutputStream

import java.io.IOException

import java.awt.Color

import com.lowagie.text.*

import com.lowagie.text.pdf.*

import com.lowagie.text.pdf.BaseFont

/**

 * 创建Pdf文档

 * @author Administrator

 *

 */

public class HelloPdf

{

    public static void main(String[] args)throws Exception

    {

        BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED)

        Font FontChinese = new Font(bfChinese, 12, Font.NORMAL)

        // 第一步,创建document对象

        Rectangle rectPageSize = new Rectangle(PageSize.A4)

        

        //下面代码设置页面横置

        //rectPageSize = rectPageSize.rotate()

        

        //创建document对象并指定边距

        Document doc = new Document(rectPageSize,50,50,50,50)

        Document document = new Document()

        try

        {

            // 第二步,将Document实例和文件输出流用PdfWriter类绑定在一起

            //从而完成向Document写,即写入PDF文档

            PdfWriter.getInstance(document,new FileOutputStream("src/poi/itext/HelloWorld.pdf"))

            //第3步,打开文档

            document.open()

            //第3步,向文档添加文字. 文档由段组成

            document.add(new Paragraph("Hello World"))

            Paragraph par = new Paragraph("世界你好",FontChinese)

            document.add(par)

            PdfPTable table = new PdfPTable(3)

            for(int i=0i<12i++)

            {

                if (i == 0)

                {

                    PdfPCell cell = new PdfPCell()

                    cell.setColspan(3)

                    cell.setBackgroundColor(new Color(180,180,180))

                    cell.addElement(new Paragraph("表格头" , FontChinese))

                    table.addCell(cell)

                }

                else

                {

                    PdfPCell cell = new PdfPCell()

                    cell.addElement(new Paragraph("表格内容" , FontChinese))

                    table.addCell(cell)

                }

            }

            document.add(table)

        }

        catch (DocumentException de)

        {

            System.err.println(de.getMessage())

        }

        catch (IOException ioe)

        {

            System.err.println(ioe.getMessage())

        }

        //关闭document

        document.close()

        

        System.out.println("生成HelloPdf成功!")

     }

    

    

}

希望对你有帮助。

如果只是文字的话,直接读出来,然后用07的存回去,poi能实现。但是有目录什么的就麻烦了,03的读出来目录是一行代码,就容易出问题

我用的poi正好在纠结,最后没办法,用按键精灵一个个转的。有个word文档批处理貌似能做到,但是要收费。

下面的是我读取word文字的代码

03读取:

InputStream is = new FileInputStream(docfile)

WordExtractor ex = new WordExtractor(is)

text = ex.getText()

System.out.println(text)

07读取:

OPCPackage opcPackage = POIXMLDocument.openPackage(docxfile.getAbsolutePath())

POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage)

text = extractor.getText()

System.out.println(text)

最后:doc不一定是03的,也可能是07的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11314040.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存