java 怎样将当前的页面保存为pdf

Python044

java 怎样将当前的页面保存为pdf,第1张

可以用下struts2框架,它的配置文件里通过添加一个属性就可以把网页转成pdf的

application/pdf

charset=gb2312

pdfStream

attachment

filename="contract.pdf"

2048

①建立com.lowagie.text.Document对象的实例。

Document document = new Document()

②建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中。

PDFWriter.getInstance(document, new FileOutputStream("Helloworld.PDF"))

③打开文档。

document.open()

④向文档中添加内容。

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

⑤关闭文档。

document.close()

通过上面的5个步骤,就能产生一个Helloworld.PDF的文件,文件内容为"Hello World"。

需要用到一个pdf的jar包,去网上下载一个itextpdf.jar。导出pdf的格式都是需要自己用代码实现的,每一行 ,每一个列是什么格式,都需要自己写出来,是不能够自动生成的,反正很麻烦。我做的一个导出成pdf特定格式的东西,写了好几千行代码。相当头痛。

package com.dw.mqs.export

import java.awt.Color

import java.io.ByteArrayOutputStream

import java.math.BigDecimal

import java.net.URL

import java.util.Date

import java.util.HashSet

import java.util.Hashtable

import java.util.List

import java.util.Map

import java.util.Set

import javax.servlet.http.HttpServletRequest

import javax.servlet.http.HttpServletResponse

import com.dw.file.WebHelper

import com.dw.mqs.MqsManager

import com.dw.mqs.MqsUtilNew

import com.dw.mqs.ProductItem

import com.dw.mqs.ProjectBasicItem

import com.dw.mqs.ProjectConfDetailItem

import com.dw.mqs.ProjectConfVerItem

import com.dw.mqs.ProjectConfig

import com.dw.mqs.ProjectService

import com.dw.mqs.Util

import com.dw.system.Convert

import com.dw.system.gdb.DBResult

import com.dw.system.gdb.DataRow

import com.dw.system.gdb.GDB

import com.dw.user.User

import com.dw.user.UserManager

import com.dw.user.UserProfile

import com.lowagie.text.Document

import com.lowagie.text.Element

import com.lowagie.text.Font

import com.lowagie.text.Image

import com.lowagie.text.PageSize

import com.lowagie.text.Paragraph

import com.lowagie.text.Rectangle

import com.lowagie.text.pdf.BaseFont

import com.lowagie.text.pdf.PdfPCell

import com.lowagie.text.pdf.PdfPTable

import com.lowagie.text.pdf.PdfWriter

public class PdfService

{

Document document = new Document(PageSize.A4.rotate(), 50, 50, 50, 50)

ByteArrayOutputStream os = new ByteArrayOutputStream()

PdfWriter pdf = PdfWriter.getInstance(document, os)

Rectangle rect = new Rectangle(36, 54, 559, 788)

pdf.setBoxSize("art", rect)

pdf.setPageEvent(new TableHeader())

document.open()

BaseFont baseArialuni = BaseFont.createFont("res/ARIALUNI.TTF",

BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED)// Arial

// unicode字体

Font fontCN = new Font(baseArialuni, 9, Font.NORMAL, Color.BLACK)

Font fontCN8b = new Font(baseArialuni, 9, Font.BOLD, Color.BLACK)

Font fontCN12b = new Font(baseArialuni, 12, Font.BOLD, Color.BLACK)

Font fontCN9b = new Font(baseArialuni, 10, Font.BOLD, Color.BLACK)

Font fontCN9 = new Font(baseArialuni, 10, Font.NORMAL, Color.BLACK)

Font fontCN9b_blue = new Font(baseArialuni, 10, Font.BOLD, Color.BLUE)

PdfPTable table = null

PdfPCell cell = null

table = new PdfPTable(relativeWidths)

table.setWidthPercentage(100)

cell = new PdfPCell(new Paragraph(tit + "标题", fontCN12b))

cell.setColspan(root ? 12 : 10)

cell.setHorizontalAlignment(Element.ALIGN_CENTER)// 水平居中

cell.setVerticalAlignment(Element.ALIGN_MIDDLE)// 垂直居中

cell.setBorder(Rectangle.NO_BORDER)

table.addCell(cell)

}