itext导出word 带图片

xiaoxiao2021-02-28  100

、package com.gaopin.admin.commons.utils;

import java.awt.Color; import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.math.BigInteger; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map;

import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;

import org.apache.poi.xwpf.extractor.XWPFWordExtractor; import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy; import org.apache.poi.xwpf.usermodel.ParagraphAlignment; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFPictureData; import org.apache.poi.xwpf.usermodel.XWPFRun; import org.apache.poi.xwpf.usermodel.XWPFTable; import org.apache.poi.xwpf.usermodel.XWPFTableRow; import org.apache.xmlbeans.XmlException; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSectPr; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblWidth; import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTblWidth;

import com.baidubce.util.BaiduBosUtils; import com.gaopin.admin.model.vo.SysPictureVo; import com.gaopin.admin.model.vo.SysSapVo; import com.gaopin.admin.service.impl.SysSapServiceImpl; import com.lowagie.text.BadElementException; import com.lowagie.text.Cell; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; 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.Phrase; import com.lowagie.text.Table; import com.lowagie.text.pdf.BaseFont; import com.lowagie.text.rtf.RtfWriter2;

/** * CSV操作(导出和导入) * * @author jone.cai * @version 1.0 Jan 27, 2017 4:30:58 PM */ public class WordUtils { private Document document; private BaseFont bfChinese;

public BaseFont getBfChinese() { return bfChinese; } public void setBfChinese(BaseFont bfChinese) { this.bfChinese = bfChinese; } public Document getDocument() { return document; } public void setDocument(Document document) { this.document = document; } public WordUtils() { this.document = new Document(PageSize.A4); } /** * @param filePath * 建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中 * @throws DocumentException * @throws IOException */ public void openDocument(String filePath) throws DocumentException, IOException { // 建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中 RtfWriter2.getInstance(this.document, new FileOutputStream(filePath)); this.document.open(); // 设置中文字体 // this.bfChinese = BaseFont.createFont("STSongStd-Light", // "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); } /** * @param imgUrl * 图片路径 * @param imageAlign * 显示位置 * @param height * 显示高度 * @param weight * 显示宽度 * @param percent * 显示比例 * @param heightPercent * 显示高度比例 * @param weightPercent * 显示宽度比例 * @param rotation * 显示图片旋转角度 * @throws MalformedURLException * @throws IOException * @throws DocumentException */ public void insertImg(SysSapVo sysSap, String imgUrl, int imageAlign, int height, int weight, int percent, int heightPercent, int weightPercent, int rotation) throws MalformedURLException, IOException, DocumentException { // 添加图片 Image img = Image.getInstance(imgUrl); if (img == null) return; img.setAbsolutePosition(0, 0); img.setAlignment(imageAlign); img.scaleAbsolute(height, weight); img.scalePercent(percent); img.scalePercent(heightPercent, weightPercent); img.setRotation(rotation); Table aTable = new Table(3, 4); int width1[] = { 55, 10, 20 }; aTable.setWidths(width1);// 设置每列所占比例 aTable.setWidth(100); // 占页面宽度 90% aTable.setAlignment(Element.ALIGN_LEFT);// 居中显示 aTable.setAlignment(Element.ALIGN_CENTER);// 纵向居中显示 aTable.setAutoFillEmptyCells(true); // 自动填满 aTable.setBorderWidth(0); // 边框宽度 aTable.setBorderColor(new Color(0, 125, 255)); // 边框颜色 Font font = new Font(bfChinese, 8 ); Cell cellEmailBB = new Cell(new Phrase("", font)); cellEmailBB.add(img); cellEmailBB.setVerticalAlignment(Element.ALIGN_CENTER); cellEmailBB.setHorizontalAlignment(Element.ALIGN_LEFT);

// cellEmailBB.setBorderWidthTop(0); cellEmailBB.setRowspan(4); cellEmailBB.setBorderColor(new Color(0, 0, 0)); cellEmailBB.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellEmailBB);

Cell cellEmailB = new Cell(new Phrase(" 合同编号:", font)); cellEmailB.setVerticalAlignment(Element.ALIGN_LEFT); cellEmailB.setHorizontalAlignment(Element.ALIGN_LEFT); cellEmailB.setBorderColor(new Color(0, 0, 0)); cellEmailB.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellEmailB); Cell cellEmailBs = new Cell(new Phrase(" " + sysSap.getContractId(), font)); cellEmailBs.setVerticalAlignment(Element.ALIGN_LEFT); cellEmailBs.setHorizontalAlignment(Element.ALIGN_LEFT); cellEmailBs.setBorderColor(new Color(0, 0, 0)); cellEmailBs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellEmailBs); Cell cellFaxA = new Cell(new Phrase(" 日期:", font)); cellFaxA.setVerticalAlignment(Element.ALIGN_LEFT); cellFaxA.setHorizontalAlignment(Element.ALIGN_LEFT); cellFaxA.setBorderColor(new Color(0, 0, 0)); cellFaxA.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellFaxA); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");// 小写的mm表示的是分钟 Date time = sysSap.getContractDay(); String day = sdf.format(time); Cell cellFaxAs = new Cell(new Phrase(" " + day, font)); cellFaxAs.setVerticalAlignment(Element.ALIGN_LEFT); cellFaxAs.setHorizontalAlignment(Element.ALIGN_LEFT); cellFaxAs.setBorderColor(new Color(0, 0, 0)); cellFaxAs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellFaxAs); Cell cellFaxB = new Cell(new Phrase(" 制单人:", font)); cellFaxB.setVerticalAlignment(Element.ALIGN_LEFT); cellFaxB.setHorizontalAlignment(Element.ALIGN_LEFT); // cellFaxB.setBorderWidthTop(0); cellFaxB.setBorderColor(new Color(0, 0, 0)); cellFaxB.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellFaxB); Cell cellFaxBs = new Cell(new Phrase(" " + sysSap.getMakeUser(), font)); cellFaxBs.setVerticalAlignment(Element.ALIGN_LEFT); cellFaxBs.setHorizontalAlignment(Element.ALIGN_LEFT); // cellFaxBs.setBorderWidthTop(0); cellFaxBs.setBorderColor(new Color(0, 0, 0)); cellFaxBs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellFaxBs); Cell cellFaxAA = new Cell(new Phrase(" 邮箱:", font)); cellFaxAA.setVerticalAlignment(Element.ALIGN_LEFT); cellFaxAA.setHorizontalAlignment(Element.ALIGN_LEFT); cellFaxAA.setBorderColor(new Color(0, 0, 0)); cellFaxAA.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellFaxAA); Cell cellFaxAAs = new Cell(new Phrase(" " + sysSap.getMakeUserEmail(), font)); cellFaxAAs.setVerticalAlignment(Element.ALIGN_LEFT); cellFaxAAs.setHorizontalAlignment(Element.ALIGN_LEFT); cellFaxAAs.setBorderColor(new Color(0, 0, 0)); cellFaxAAs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellFaxAAs); document.add(aTable); document.add(new Paragraph("\n")); } /** * @param titleStr * 标题 * @param fontsize * 字体大小 * @param fontStyle * 字体样式 * @param elementAlign * 对齐方式 * @throws DocumentException */ public void insertTitle(String titleStr, int fontsize, int fontStyle, int elementAlign) throws DocumentException { Font titleFont = new Font(this.bfChinese, fontsize, fontStyle); Paragraph title = new Paragraph(titleStr); // 设置标题格式对齐方式 title.setAlignment(elementAlign); title.setFont(titleFont); this.document.add(title); } /* * 高品内容许可协议 */ public void insertRiskTable(SysSapVo sysSap) throws DocumentException { Table aTable = new Table(4, 7); int width1[] = { 10, 40, 10, 40 }; aTable.setWidth(90); // 占页面宽度 90% aTable.setWidths(width1);// 设置每列所占比例 aTable.setAlignment(Element.ALIGN_CENTER);// 居中显示 aTable.setAlignment(Element.ALIGN_CENTER);// 纵向居中显示 aTable.setAutoFillEmptyCells(true); // 自动填满 aTable.setBorderWidth(0); // 边框宽度 aTable.setBorderColor(new Color(0, 125, 255)); // 边框颜色 Font fontChinese = new Font(bfChinese, 9, Font.BOLD); Font font = new Font(bfChinese, 10); Cell cellCompanyA = new Cell(new Phrase("甲方:", fontChinese)); cellCompanyA.setVerticalAlignment(Element.ALIGN_LEFT); cellCompanyA.setHorizontalAlignment(Element.ALIGN_LEFT); // 表格隐藏边框线 cellCompanyA.setBorderWidthTop(0); cellCompanyA.setBorderColor(new Color(0, 0, 0)); cellCompanyA.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellCompanyA); Cell cellCompanyAs = new Cell(new Phrase(sysSap.getCompanyAName(), font)); cellCompanyAs.setVerticalAlignment(Element.ALIGN_LEFT); cellCompanyAs.setHorizontalAlignment(Element.ALIGN_LEFT); // 表格隐藏边框线 cellCompanyAs.setBorderWidthTop(0); cellCompanyAs.setBorderColor(new Color(0, 0, 0)); cellCompanyAs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellCompanyAs); Cell cellCompanyB = new Cell(new Phrase("乙方:", fontChinese)); cellCompanyB.setVerticalAlignment(Element.ALIGN_LEFT); cellCompanyB.setHorizontalAlignment(Element.ALIGN_LEFT); cellCompanyB.setBorderWidthTop(0); cellCompanyB.setBorderColor(new Color(0, 0, 0)); cellCompanyB.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellCompanyB); Cell cellCompanyBs = new Cell(new Phrase("高品(北京)图像有限公司", font)); cellCompanyBs.setVerticalAlignment(Element.ALIGN_LEFT); cellCompanyBs.setHorizontalAlignment(Element.ALIGN_LEFT); cellCompanyBs.setBorderWidthTop(0); cellCompanyBs.setBorderColor(new Color(0, 0, 0)); cellCompanyBs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellCompanyBs); Cell cellAddressA = new Cell(new Phrase("地址:", fontChinese)); cellAddressA.setVerticalAlignment(Element.ALIGN_LEFT); cellAddressA.setHorizontalAlignment(Element.ALIGN_LEFT); cellAddressA.setBorderWidthTop(0); cellAddressA.setBorderColor(new Color(0, 0, 0)); cellAddressA.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellAddressA); Cell cellAddressAs = new Cell(new Phrase(sysSap.getAddressA(), font)); cellAddressAs.setVerticalAlignment(Element.ALIGN_LEFT); cellAddressAs.setHorizontalAlignment(Element.ALIGN_LEFT); cellAddressAs.setBorderWidthTop(0); cellAddressAs.setBorderColor(new Color(0, 0, 0)); cellAddressAs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellAddressAs); Cell cellAddressB = new Cell(new Phrase("地址:", fontChinese)); cellAddressB.setVerticalAlignment(Element.ALIGN_LEFT); cellAddressB.setHorizontalAlignment(Element.ALIGN_LEFT); cellAddressB.setBorderWidthTop(0); cellAddressB.setBorderColor(new Color(0, 0, 0)); cellAddressB.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellAddressB); Cell cellAddressBs = new Cell(new Phrase("北京市朝阳区东三环中路 12 号现代柏利大厦1108", font)); cellAddressBs.setVerticalAlignment(Element.ALIGN_LEFT); cellAddressBs.setHorizontalAlignment(Element.ALIGN_LEFT); cellAddressBs.setBorderWidthTop(0); cellAddressBs.setBorderColor(new Color(0, 0, 0)); cellAddressBs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellAddressBs); Cell cellZipA = new Cell(new Phrase("邮编:", fontChinese)); cellZipA.setVerticalAlignment(Element.ALIGN_LEFT); cellZipA.setHorizontalAlignment(Element.ALIGN_LEFT); cellZipA.setBorderWidthTop(0); cellZipA.setBorderColor(new Color(0, 0, 0)); cellZipA.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellZipA); Cell cellZipAs = new Cell(new Phrase(sysSap.getZipCodeA(), font)); cellZipAs.setVerticalAlignment(Element.ALIGN_LEFT); cellZipAs.setHorizontalAlignment(Element.ALIGN_LEFT); cellZipAs.setBorderWidthTop(0); cellZipAs.setBorderColor(new Color(0, 0, 0)); cellZipAs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellZipAs); Cell cellZipB = new Cell(new Phrase("邮编:", fontChinese)); cellZipB.setVerticalAlignment(Element.ALIGN_LEFT); cellZipB.setHorizontalAlignment(Element.ALIGN_LEFT); cellZipB.setBorderWidthTop(0); cellZipB.setBorderColor(new Color(0, 0, 0)); cellZipB.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellZipB); Cell cellZipBs = new Cell(new Phrase("100022", font)); cellZipBs.setVerticalAlignment(Element.ALIGN_LEFT); cellZipBs.setHorizontalAlignment(Element.ALIGN_LEFT); cellZipBs.setBorderWidthTop(0); cellZipBs.setBorderColor(new Color(0, 0, 0)); cellZipBs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellZipBs); Cell cellUserA = new Cell(new Phrase("联系人:", fontChinese)); cellUserA.setVerticalAlignment(Element.ALIGN_LEFT); cellUserA.setHorizontalAlignment(Element.ALIGN_LEFT); cellUserA.setBorderWidthTop(0); cellUserA.setBorderColor(new Color(0, 0, 0)); cellUserA.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellUserA); Cell cellUserAs = new Cell(new Phrase(sysSap.getPersonAId(), font)); cellUserAs.setVerticalAlignment(Element.ALIGN_LEFT); cellUserAs.setHorizontalAlignment(Element.ALIGN_LEFT); cellUserAs.setBorderWidthTop(0); cellUserAs.setBorderColor(new Color(0, 0, 0)); cellUserAs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellUserAs); Cell cellUserB = new Cell(new Phrase("客户经理:", fontChinese)); cellUserB.setVerticalAlignment(Element.ALIGN_LEFT); cellUserB.setHorizontalAlignment(Element.ALIGN_LEFT); cellUserB.setBorderWidthTop(0); cellUserB.setBorderColor(new Color(0, 0, 0)); cellUserB.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellUserB); Cell cellUserBs = new Cell(new Phrase(sysSap.getMakeUser(), font)); cellUserBs.setVerticalAlignment(Element.ALIGN_LEFT); cellUserBs.setHorizontalAlignment(Element.ALIGN_LEFT); cellUserBs.setBorderWidthTop(0); cellUserBs.setBorderColor(new Color(0, 0, 0)); cellUserBs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellUserBs); Cell cellPhoneA = new Cell(new Phrase("电话:", fontChinese)); cellPhoneA.setVerticalAlignment(Element.ALIGN_LEFT); cellPhoneA.setHorizontalAlignment(Element.ALIGN_LEFT); cellPhoneA.setBorderWidthTop(0); cellPhoneA.setBorderColor(new Color(0, 0, 0)); cellPhoneA.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellPhoneA); Cell cellPhoneAs = new Cell(new Phrase(sysSap.getPhoneA(), font)); cellPhoneAs.setVerticalAlignment(Element.ALIGN_LEFT); cellPhoneAs.setHorizontalAlignment(Element.ALIGN_LEFT); cellPhoneAs.setBorderWidthTop(0); cellPhoneAs.setBorderColor(new Color(0, 0, 0)); cellPhoneAs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellPhoneAs); Cell cellPhoneB = new Cell(new Phrase("电话:", fontChinese)); cellPhoneB.setVerticalAlignment(Element.ALIGN_LEFT); cellPhoneB.setHorizontalAlignment(Element.ALIGN_LEFT); cellPhoneB.setBorderWidthTop(0); cellPhoneB.setBorderColor(new Color(0, 0, 0)); cellPhoneB.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellPhoneB); Cell cellPhoneBs = new Cell(new Phrase("", font)); cellPhoneBs.setVerticalAlignment(Element.ALIGN_LEFT); cellPhoneBs.setHorizontalAlignment(Element.ALIGN_LEFT); cellPhoneBs.setBorderWidthTop(0); cellPhoneBs.setBorderColor(new Color(0, 0, 0)); cellPhoneBs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellPhoneBs); Cell cellEmailA = new Cell(new Phrase("邮箱:", fontChinese)); cellEmailA.setVerticalAlignment(Element.ALIGN_LEFT); cellEmailA.setHorizontalAlignment(Element.ALIGN_LEFT); cellEmailA.setBorderWidthTop(0); cellEmailA.setBorderColor(new Color(0, 0, 0)); cellEmailA.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellEmailA); Cell cellEmailAs = new Cell(new Phrase(sysSap.getEmailA(), font)); cellEmailAs.setVerticalAlignment(Element.ALIGN_LEFT); cellEmailAs.setHorizontalAlignment(Element.ALIGN_LEFT); cellEmailAs.setBorderWidthTop(0); cellEmailAs.setBorderColor(new Color(0, 0, 0)); cellEmailAs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellEmailAs); Cell cellEmailB = new Cell(new Phrase("邮箱:", fontChinese)); cellEmailB.setVerticalAlignment(Element.ALIGN_LEFT); cellEmailB.setHorizontalAlignment(Element.ALIGN_LEFT); cellEmailB.setBorderWidthTop(0); cellEmailB.setBorderColor(new Color(0, 0, 0)); cellEmailB.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellEmailB); Cell cellEmailBs = new Cell(new Phrase(sysSap.getMakeUserEmail(), font)); cellEmailBs.setVerticalAlignment(Element.ALIGN_LEFT); cellEmailBs.setHorizontalAlignment(Element.ALIGN_LEFT); cellEmailBs.setBorderWidthTop(0); cellEmailBs.setBorderColor(new Color(0, 0, 0)); cellEmailBs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellEmailBs); Cell cellFaxA = new Cell(new Phrase("传真:", fontChinese)); cellFaxA.setVerticalAlignment(Element.ALIGN_LEFT); cellFaxA.setHorizontalAlignment(Element.ALIGN_LEFT); cellFaxA.setBorderWidthTop(0); cellFaxA.setBorderColor(new Color(0, 0, 0)); cellFaxA.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellFaxA); Cell cellFaxAs = new Cell(new Phrase(sysSap.getFax(), font)); cellFaxAs.setVerticalAlignment(Element.ALIGN_LEFT); cellFaxAs.setHorizontalAlignment(Element.ALIGN_LEFT); cellFaxAs.setBorderWidthTop(0); cellFaxAs.setBorderColor(new Color(0, 0, 0)); cellFaxAs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellFaxAs); Cell cellFaxB = new Cell(new Phrase("传真:", fontChinese)); cellFaxB.setVerticalAlignment(Element.ALIGN_LEFT); cellFaxB.setHorizontalAlignment(Element.ALIGN_LEFT); cellFaxB.setBorderWidthTop(0); cellFaxB.setBorderColor(new Color(0, 0, 0)); cellFaxB.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellFaxB); Cell cellFaxBs = new Cell(new Phrase("010 - 65008192", font)); cellFaxBs.setVerticalAlignment(Element.ALIGN_LEFT); cellFaxBs.setHorizontalAlignment(Element.ALIGN_LEFT); cellFaxBs.setBorderWidthTop(0); cellFaxBs.setBorderColor(new Color(0, 0, 0)); cellFaxBs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellFaxBs); document.add(aTable); document.add(new Paragraph("\n")); } /* * 高品内容许可协议 */ public void insertRiskEvaluationTable(SysSapVo sysSap) throws DocumentException { Table aTable = new Table(5, 3); int width1[] = { 5, 15, 40, 15, 15 }; aTable.setWidths(width1);// 设置每列所占比例 aTable.setWidth(100); // 占页面宽度 90% aTable.setAlignment(Element.ALIGN_LEFT);// 居中显示 aTable.setAlignment(Element.ALIGN_LEFT);// 纵向居中显示 aTable.setAutoFillEmptyCells(true); // 自动填满 aTable.setBorderWidth(0); // 边框宽度 aTable.setBorderColor(new Color(0, 125, 255)); // 边框颜色 Font font = new Font(bfChinese, 9); Cell cellEmailB = new Cell(new Phrase(" 最终用户全称:", font)); cellEmailB.setVerticalAlignment(Element.ALIGN_LEFT); cellEmailB.setHorizontalAlignment(Element.ALIGN_LEFT); cellEmailB.setColspan(2); cellEmailB.setBorderColor(new Color(0, 0, 0)); cellEmailB.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellEmailB); Cell cellEmailBs = new Cell(new Phrase(" " + sysSap.getFinalUser(), font)); cellEmailBs.setVerticalAlignment(Element.ALIGN_LEFT); cellEmailBs.setHorizontalAlignment(Element.ALIGN_LEFT); cellEmailBs.setColspan(3); cellEmailBs.setBorderColor(new Color(0, 0, 0)); cellEmailBs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellEmailBs); Cell cellFaxA = new Cell(new Phrase(" 项目名称:", font)); cellFaxA.setVerticalAlignment(Element.ALIGN_LEFT); cellFaxA.setHorizontalAlignment(Element.ALIGN_LEFT); cellFaxA.setColspan(2); cellFaxA.setBorderColor(new Color(0, 0, 0)); cellFaxA.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellFaxA); Cell cellFaxAs = new Cell(new Phrase(" " + sysSap.getItemName(), font)); cellFaxAs.setVerticalAlignment(Element.ALIGN_LEFT); cellFaxAs.setHorizontalAlignment(Element.ALIGN_LEFT); cellFaxAs.setColspan(3); cellFaxAs.setBorderColor(new Color(0, 0, 0)); cellFaxAs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellFaxAs); Cell cellFaxB = new Cell(new Phrase(" 工作号/po号:", font)); cellFaxB.setVerticalAlignment(Element.ALIGN_LEFT); cellFaxB.setHorizontalAlignment(Element.ALIGN_LEFT); cellFaxB.setColspan(2); cellFaxB.setBorderColor(new Color(0, 0, 0)); cellFaxB.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellFaxB); Cell cellFaxBs = new Cell(new Phrase(" " + sysSap.getWorkNumber(), font)); cellFaxBs.setVerticalAlignment(Element.ALIGN_LEFT); cellFaxBs.setHorizontalAlignment(Element.ALIGN_LEFT); cellFaxBs.setColspan(3); cellFaxBs.setBorderColor(new Color(0, 0, 0)); cellFaxBs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(cellFaxBs); document.add(aTable); document.add(new Paragraph("\n")); } /** * RF图片 * * @throws DocumentException * @throws IOException */ public void RFTable(SysSapVo sysSap) throws DocumentException, IOException { Table aTable = new Table(5, 2); int width1[] = { 5, 15, 40, 15, 15 }; aTable.setWidths(width1);// 设置每列所占比例 aTable.setWidth(100); // 占页面宽度 90% aTable.setAlignment(Element.ALIGN_LEFT);// 居中显示 aTable.setAlignment(Element.ALIGN_MIDDLE);// 纵向居中显示 aTable.setAutoFillEmptyCells(true); // 自动填满 aTable.setBorderWidth(0); // 边框宽度 aTable.setBorderColor(new Color(0, 125, 255)); // 边框颜色 Font font = new Font(bfChinese, 9); Font blackFont = new Font(bfChinese, 9,Font.BOLD); Cell cellCompanyA = new Cell(new Phrase("序号", font)); cellCompanyA.setVerticalAlignment(Element.ALIGN_CENTER); cellCompanyA.setHorizontalAlignment(Element.ALIGN_CENTER); // 表格隐藏边框线 cellCompanyA.setBorderColor(new Color(0, 0, 0)); cellCompanyA.setBackgroundColor(new Color(204, 204, 204)); aTable.addCell(cellCompanyA); Cell cellCompanyAs = new Cell(new Phrase("图像编号", font)); cellCompanyAs.setVerticalAlignment(Element.ALIGN_CENTER); cellCompanyAs.setHorizontalAlignment(Element.ALIGN_CENTER); // 表格隐藏边框线 cellCompanyAs.setBorderColor(new Color(0, 0, 0)); cellCompanyAs.setBackgroundColor(new Color(204, 204, 204)); aTable.addCell(cellCompanyAs); Cell cellCompanyB = new Cell(new Phrase("图像信息", font)); cellCompanyB.setVerticalAlignment(Element.ALIGN_CENTER); cellCompanyB.setHorizontalAlignment(Element.ALIGN_CENTER); cellCompanyB.setBorderColor(new Color(0, 0, 0)); cellCompanyB.setBackgroundColor(new Color(204, 204, 204)); aTable.addCell(cellCompanyB); Cell cellCompanyBs = new Cell(new Phrase("图像尺寸", font)); cellCompanyBs.setVerticalAlignment(Element.ALIGN_CENTER); cellCompanyBs.setHorizontalAlignment(Element.ALIGN_CENTER); cellCompanyBs.setBorderColor(new Color(0, 0, 0)); cellCompanyBs.setBackgroundColor(new Color(204, 204, 204)); aTable.addCell(cellCompanyBs); Cell cellAddressA = new Cell(new Phrase("许可费用(RMB)", font)); cellAddressA.setVerticalAlignment(Element.ALIGN_CENTER); cellAddressA.setHorizontalAlignment(Element.ALIGN_CENTER); cellAddressA.setBorderColor(new Color(0, 0, 0)); cellAddressA.setBackgroundColor(new Color(204, 204, 204)); aTable.addCell(cellAddressA); int num = sysSap.getCompanyBId(); for (int i = 0; i < sysSap.getSysPic().size(); i++) { System.out.println(num); if ("RF".equals(sysSap.getSysPic().get(i).getLicenseModel())) { ++num; Cell numRF = new Cell(new Phrase(String.valueOf(num), font)); numRF.setVerticalAlignment(Element.ALIGN_CENTER); numRF.setHorizontalAlignment(Element.ALIGN_CENTER); numRF.setBorderColor(new Color(0, 0, 0)); numRF.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(numRF); String imgUrl = sysSap.getPhoneB() + "/"+ sysSap.getSysPic().get(i).getCorbisID() + ".jpg"; Image img = Image.getInstance(imgUrl); if (img == null) return; img.setAbsolutePosition(0, 0); img.setAlignment(Image.ALIGN_CENTER); img.scaleAbsolute(9, 9); img.scalePercent(9); img.scalePercent(9, 9); img.setRotation(9); Cell corbisIdRf = new Cell(new Phrase(sysSap.getSysPic().get(i).getCorbisID(), blackFont)); corbisIdRf.add(img); corbisIdRf.setVerticalAlignment(Element.ALIGN_CENTER); corbisIdRf.setHorizontalAlignment(Element.ALIGN_CENTER); corbisIdRf.setBorderColor(new Color(0, 0, 0)); corbisIdRf.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(corbisIdRf); Cell titleRf = new Cell(new Phrase(" " + sysSap.getSysPic().get(i).getTitle() + "\n" + " " + sysSap.getSysPic().get(i).getCustomCreditLine()+ "\n" + "\n" , font)); titleRf.setVerticalAlignment(Element.ALIGN_LEFT); titleRf.setHorizontalAlignment(Element.ALIGN_LEFT); titleRf.setBorderColor(new Color(0, 0, 0)); titleRf.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(titleRf); Cell sizeRf = new Cell(new Phrase(sysSap.getSysPic().get(i).getPictureSize(), blackFont)); sizeRf.setVerticalAlignment(Element.ALIGN_CENTER); sizeRf.setHorizontalAlignment(Element.ALIGN_CENTER); sizeRf.setBorderColor(new Color(0, 0, 0)); sizeRf.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(sizeRf); Cell moneyRf = new Cell(new Phrase(sysSap.getSysPic().get(i).getPictureMoney(), blackFont)); moneyRf.setVerticalAlignment(Element.ALIGN_CENTER); moneyRf.setHorizontalAlignment(Element.ALIGN_CENTER); moneyRf.setBorderColor(new Color(0, 0, 0)); moneyRf.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(moneyRf); } } document.add(aTable); document.add(new Paragraph("\n")); } private void condition(String string, String id) { // TODO Auto-generated method stub } public static byte[] readInputStream(InputStream inputStream) throws IOException { byte[] buffer = new byte[1024]; int len = 0; ByteArrayOutputStream bos = new ByteArrayOutputStream(); while ((len = inputStream.read(buffer)) != -1) { bos.write(buffer, 0, len); } bos.close(); return bos.toByteArray(); } /** * RM图片 * * @throws DocumentException * @throws IOException * @throws MalformedURLException */ public void RMTable(SysSapVo sysSap) throws DocumentException, MalformedURLException, IOException { Table aTable = new Table(5, 3); int width1[] = { 5, 15, 40, 15, 15 }; aTable.setWidths(width1);// 设置每列所占比例 aTable.setWidth(100); // 占页面宽度 90% aTable.setAlignment(Element.ALIGN_LEFT);// 居中显示 aTable.setAlignment(Element.ALIGN_MIDDLE);// 纵向居中显示 aTable.setAutoFillEmptyCells(true); // 自动填满 aTable.setBorderWidth(0); // 边框宽度 aTable.setBorderColor(new Color(0, 125, 255)); // 边框颜色 Font font = new Font(bfChinese, 9); Font blackFont = new Font(bfChinese, 9,Font.BOLD); Cell cellCompanyA = new Cell(new Phrase("序号", font)); cellCompanyA.setVerticalAlignment(Element.ALIGN_CENTER); cellCompanyA.setHorizontalAlignment(Element.ALIGN_CENTER); // 表格隐藏边框线 cellCompanyA.setBorderColor(new Color(0, 0, 0)); cellCompanyA.setBackgroundColor(new Color(204, 204, 204)); aTable.addCell(cellCompanyA); Cell cellCompanyAs = new Cell(new Phrase("图像编号", font)); cellCompanyAs.setVerticalAlignment(Element.ALIGN_CENTER); cellCompanyAs.setHorizontalAlignment(Element.ALIGN_CENTER); // 表格隐藏边框线 cellCompanyAs.setBorderColor(new Color(0, 0, 0)); cellCompanyAs.setBackgroundColor(new Color(204, 204, 204)); aTable.addCell(cellCompanyAs); Cell cellCompanyB = new Cell(new Phrase("图像信息", font)); cellCompanyB.setVerticalAlignment(Element.ALIGN_CENTER); cellCompanyB.setHorizontalAlignment(Element.ALIGN_CENTER); cellCompanyB.setBorderColor(new Color(0, 0, 0)); cellCompanyB.setBackgroundColor(new Color(204, 204, 204)); aTable.addCell(cellCompanyB); Cell cellCompanyBs = new Cell(new Phrase("图像尺寸", font)); cellCompanyBs.setVerticalAlignment(Element.ALIGN_CENTER); cellCompanyBs.setHorizontalAlignment(Element.ALIGN_CENTER); cellCompanyBs.setBorderColor(new Color(0, 0, 0)); cellCompanyBs.setBackgroundColor(new Color(204, 204, 204)); aTable.addCell(cellCompanyBs); Cell cellAddressA = new Cell(new Phrase("许可费用(RMB)", font)); cellAddressA.setVerticalAlignment(Element.ALIGN_CENTER); cellAddressA.setHorizontalAlignment(Element.ALIGN_CENTER); cellAddressA.setBorderColor(new Color(0, 0, 0)); cellAddressA.setBackgroundColor(new Color(204, 204, 204)); aTable.addCell(cellAddressA); int num = 0; for (int i = 0; i < sysSap.getSysPic().size(); i++) { if ("RM".equals(sysSap.getSysPic().get(i).getLicenseModel())) { ++num; Cell numRF = new Cell(new Phrase(String.valueOf(num), font)); numRF.setVerticalAlignment(Element.ALIGN_CENTER); numRF.setHorizontalAlignment(Element.ALIGN_CENTER); numRF.setBorderColor(new Color(0, 0, 0)); numRF.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(numRF); String imgUrl = sysSap.getPhoneB() + "/"+ sysSap.getSysPic().get(i).getCorbisID() + ".jpg"; Image img = Image.getInstance(imgUrl); if (img == null) return; img.setAbsolutePosition(0, 0); img.setAlignment(Image.ALIGN_LEFT); img.scaleAbsolute(9, 9); img.scalePercent(9); img.scalePercent(9, 9); img.setRotation(9); Cell corbisIdRM = new Cell(new Phrase(sysSap.getSysPic().get(i).getCorbisID(), blackFont)); corbisIdRM.add(img); corbisIdRM.setVerticalAlignment(Element.ALIGN_CENTER); corbisIdRM.setHorizontalAlignment(Element.ALIGN_CENTER); corbisIdRM.setBorderColor(new Color(0, 0, 0)); corbisIdRM.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(corbisIdRM); String model = null; String property = null; if(sysSap.getSysPic().get(i).getModeStatus() == 2){ model = "有"; }else { model = "无"; } if(sysSap.getSysPic().get(i).getPropertyStatus() == 2){ property = "有"; }else { property = "无"; } Cell titleRM = new Cell(new Phrase(" " + sysSap.getSysPic().get(i).getTitle() + "\n" + " " + sysSap.getSysPic().get(i).getCustomCreditLine()+ "\n" , font)); titleRM.setVerticalAlignment(Element.ALIGN_LEFT); titleRM.setHorizontalAlignment(Element.ALIGN_LEFT); titleRM.setBorderColor(new Color(0, 0, 0)); titleRM.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(titleRM); Cell sizeRM = new Cell(new Phrase(sysSap.getSysPic().get(i).getPictureSize(), blackFont)); sizeRM.setVerticalAlignment(Element.ALIGN_CENTER); sizeRM.setHorizontalAlignment(Element.ALIGN_CENTER); sizeRM.setBorderColor(new Color(0, 0, 0)); sizeRM.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(sizeRM); Cell moneyRM = new Cell(new Phrase(sysSap.getSysPic().get(i).getPictureMoney(), blackFont)); moneyRM.setVerticalAlignment(Element.ALIGN_CENTER); moneyRM.setHorizontalAlignment(Element.ALIGN_CENTER); moneyRM.setBorderColor(new Color(0, 0, 0)); moneyRM.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(moneyRM); Cell allowPurposeRM = new Cell(new Phrase(" 图像许可用途:", font)); allowPurposeRM.setVerticalAlignment(Element.ALIGN_LEFT); allowPurposeRM.setHorizontalAlignment(Element.ALIGN_LEFT); allowPurposeRM.setBorderColor(new Color(0, 0, 0)); allowPurposeRM.setColspan(2); allowPurposeRM.setBorderWidthLeft(1); allowPurposeRM.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(allowPurposeRM); Cell allowPurposesRM = new Cell(new Phrase(sysSap.getSysPic().get(i).getAllowablePurpose(), font)); allowPurposesRM.setColspan(3); allowPurposesRM.setBorderWidthRight(1); allowPurposesRM.setVerticalAlignment(Element.ALIGN_LEFT); allowPurposesRM.setHorizontalAlignment(Element.ALIGN_LEFT); allowPurposesRM.setBorderColor(new Color(0, 0, 0)); allowPurposesRM.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(allowPurposesRM); Cell allowReginRM = new Cell(new Phrase(" 图像许可区域:", font)); allowReginRM.setColspan(2); allowReginRM.setBorderWidthLeft(1); allowReginRM.setVerticalAlignment(Element.ALIGN_LEFT); allowReginRM.setHorizontalAlignment(Element.ALIGN_LEFT); allowReginRM.setBorderColor(new Color(0, 0, 0)); allowReginRM.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(allowReginRM); Cell allowReginsRM = new Cell(new Phrase(sysSap.getSysPic().get(i).getAllowableRegion(), font)); allowReginsRM.setColspan(3); allowReginsRM.setBorderWidthRight(1); allowReginsRM.setVerticalAlignment(Element.ALIGN_LEFT); allowReginsRM.setHorizontalAlignment(Element.ALIGN_LEFT); allowReginsRM.setBorderColor(new Color(0, 0, 0)); allowReginsRM.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(allowReginsRM); Cell allowTimeRM = new Cell(new Phrase(" 图像许可时间:", font)); allowTimeRM.setColspan(2); allowTimeRM.setBorderWidthLeft(1); allowTimeRM.setBorderWidthBottom(1); allowTimeRM.setVerticalAlignment(Element.ALIGN_LEFT); allowTimeRM.setHorizontalAlignment(Element.ALIGN_LEFT); allowTimeRM.setBorderColor(new Color(0, 0, 0)); allowTimeRM.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(allowTimeRM); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");//小写的mm表示的是分钟 String starTime = sdf.format(sysSap.getSysPic().get(i).getAllowableTime()); String endTime = sdf.format(sysSap.getSysPic().get(i).getEndTime()); System.out.println("starTime = " + starTime); System.out.println("endTime = " + endTime); Cell allowTimesRM = new Cell(new Phrase(starTime + " - " + endTime, font)); allowTimesRM.setColspan(3); allowTimesRM.setBorderWidthRight(1); allowTimesRM.setBorderWidthBottom(1); allowTimesRM.setVerticalAlignment(Element.ALIGN_LEFT); allowTimesRM.setHorizontalAlignment(Element.ALIGN_LEFT); allowTimesRM.setBorderColor(new Color(0, 0, 0)); allowTimesRM.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(allowTimesRM); } } document.add(aTable); document.add(new Paragraph("\n")); } public void serviceMoneyTable(SysSapVo sysSap) throws DocumentException { Table aTable = new Table(2, 1); int width1[] = { 20, 80 }; aTable.setWidths(width1);// 设置每列所占比例 aTable.setWidth(100); // 占页面宽度 90% aTable.setAlignment(Element.ALIGN_LEFT);// 居中显示 aTable.setAlignment(Element.ALIGN_LEFT);// 纵向居中显示 aTable.setAutoFillEmptyCells(true); // 自动填满 aTable.setBorderWidth(0); // 边框宽度 aTable.setBorderColor(new Color(0, 125, 255)); // 边框颜色 Font font = new Font(bfChinese, 9); Cell serviceMoney = new Cell(new Phrase("电子充图费:", font)); serviceMoney.setVerticalAlignment(Element.ALIGN_LEFT); serviceMoney.setHorizontalAlignment(Element.ALIGN_LEFT); // serviceMoney.setBorderWidthTop(0); serviceMoney.setBorderColor(new Color(0, 0, 0)); serviceMoney.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(serviceMoney); Cell serviceMoneys = new Cell(new Phrase(sysSap.getServiceMoney(), font)); serviceMoneys.setVerticalAlignment(Element.ALIGN_RIGHT); serviceMoneys.setHorizontalAlignment(Element.ALIGN_RIGHT); // serviceMoneys.setBorderWidthTop(0); serviceMoneys.setBorderColor(new Color(0, 0, 0)); serviceMoneys.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(serviceMoneys); document.add(aTable); document.add(new Paragraph("\n")); } /** * money * * @param sysSap * @throws DocumentException */ public void moneyTable(SysSapVo sysSap) throws DocumentException { Table aTable = new Table(2, 3); int width1[] = { 80, 20 }; aTable.setWidths(width1);// 设置每列所占比例 aTable.setWidth(100); // 占页面宽度 90% aTable.setAlignment(Element.ALIGN_RIGHT);// 居中显示 aTable.setAlignment(Element.ALIGN_RIGHT);// 纵向居中显示 aTable.setAutoFillEmptyCells(true); // 自动填满 aTable.setBorderWidth(0); // 边框宽度 aTable.setBorderColor(new Color(0, 125, 255)); // 边框颜色 Font font = new Font(bfChinese, 10); Cell totalMoney = new Cell(new Phrase("合计:", font)); totalMoney.setVerticalAlignment(Element.ALIGN_RIGHT); totalMoney.setHorizontalAlignment(Element.ALIGN_RIGHT); totalMoney.setBorderWidthTop(0); totalMoney.setBorderColor(new Color(0, 0, 0)); totalMoney.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(totalMoney); Cell totalMoneys = new Cell(new Phrase(sysSap.getTotalMoney(), font)); totalMoneys.setVerticalAlignment(Element.ALIGN_RIGHT); totalMoneys.setHorizontalAlignment(Element.ALIGN_RIGHT); // totalMoneys.setBorderWidthTop(0); totalMoneys.setBorderColor(new Color(0, 0, 0)); totalMoneys.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(totalMoneys); Cell taxRate = new Cell(new Phrase("税率:", font)); taxRate.setVerticalAlignment(Element.ALIGN_RIGHT); taxRate.setHorizontalAlignment(Element.ALIGN_RIGHT); taxRate.setBorderWidthTop(0); taxRate.setBorderColor(new Color(0, 0, 0)); taxRate.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(taxRate); Cell taxRates = new Cell(new Phrase(sysSap.getTaxRate(), font)); taxRates.setVerticalAlignment(Element.ALIGN_RIGHT); taxRates.setHorizontalAlignment(Element.ALIGN_RIGHT); // taxRates.setBorderWidthTop(0); taxRates.setBorderColor(new Color(0, 0, 0)); taxRates.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(taxRates); Cell allMoney = new Cell(new Phrase("总金额:", font)); allMoney.setVerticalAlignment(Element.ALIGN_RIGHT); allMoney.setHorizontalAlignment(Element.ALIGN_RIGHT); allMoney.setBorderWidthTop(0); allMoney.setBorderColor(new Color(0, 0, 0)); allMoney.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(allMoney); Cell allMoneys = new Cell(new Phrase(sysSap.getAllMoney(), font)); allMoneys.setVerticalAlignment(Element.ALIGN_RIGHT); allMoneys.setHorizontalAlignment(Element.ALIGN_RIGHT); // allMoneys.setBorderWidthTop(0); allMoneys.setBorderColor(new Color(0, 0, 0)); allMoneys.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(allMoneys); document.add(aTable); document.add(new Paragraph("\n")); } /** * 付款期限 * * @param sysSap * @throws DocumentException */ public void signTable() throws DocumentException { Table aTable = new Table(3, 5); int width1[] = { 25, 25, 50 }; aTable.setWidths(width1);// 设置每列所占比例 aTable.setWidth(100); // 占页面宽度 90% aTable.setAlignment(Element.ALIGN_RIGHT);// 居中显示 aTable.setAlignment(Element.ALIGN_RIGHT);// 纵向居中显示 aTable.setAutoFillEmptyCells(true); // 自动填满

// aTable.setBorderWidth(1); // 边框宽度 // aTable.setBorderWidthTop(1); aTable.setBorderColor(new Color(0, 125, 255)); // 边框颜色

Font font = new Font(bfChinese, 10); // 付款期限 Cell payment = new Cell(new Phrase("付款期限:", font)); payment.setVerticalAlignment(Element.ALIGN_LEFT); payment.setHorizontalAlignment(Element.ALIGN_LEFT); payment.setBorderWidthTop(1); payment.setBorderWidthLeft(1); payment.setBorderColor(new Color(0, 0, 0)); payment.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(payment); Cell payments = new Cell(new Phrase("30天", font)); payments.setVerticalAlignment(Element.ALIGN_LEFT); payments.setHorizontalAlignment(Element.ALIGN_LEFT); payments.setBorderWidthTop(1); payments.setBorderColor(new Color(0, 0, 0)); payments.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(payments); Cell paymentss = new Cell(new Phrase("", font)); paymentss.setVerticalAlignment(Element.ALIGN_LEFT); paymentss.setHorizontalAlignment(Element.ALIGN_LEFT); paymentss.setBorderWidthTop(1); paymentss.setBorderWidthRight(1); paymentss.setBorderColor(new Color(0, 0, 0)); paymentss.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(paymentss); // 付款方式 Cell paymentMethod = new Cell(new Phrase("付款方式:", font)); paymentMethod.setVerticalAlignment(Element.ALIGN_LEFT); paymentMethod.setHorizontalAlignment(Element.ALIGN_LEFT); paymentMethod.setBorderWidthLeft(1); paymentMethod.setBorderColor(new Color(0, 0, 0)); paymentMethod.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(paymentMethod); Cell paymentMethods = new Cell(new Phrase("电汇,银行转账:", font)); paymentMethods.setVerticalAlignment(Element.ALIGN_LEFT); paymentMethods.setHorizontalAlignment(Element.ALIGN_LEFT); paymentMethods.setBorderWidthTop(0); paymentMethods.setBorderColor(new Color(0, 0, 0)); paymentMethods.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(paymentMethods); Cell paymentMethodss = new Cell(new Phrase("", font)); paymentMethodss.setVerticalAlignment(Element.ALIGN_LEFT); paymentMethodss.setHorizontalAlignment(Element.ALIGN_LEFT); paymentMethodss.setBorderWidthRight(1); paymentMethodss.setBorderColor(new Color(0, 0, 0)); paymentMethodss.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(paymentMethodss); // 乙方银行账户 Cell companyBank = new Cell(new Phrase("乙方银行账户:", font)); companyBank.setVerticalAlignment(Element.ALIGN_LEFT); companyBank.setHorizontalAlignment(Element.ALIGN_LEFT); companyBank.setBorderWidthLeft(1); companyBank.setBorderColor(new Color(0, 0, 0)); companyBank.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(companyBank); Cell companyBanks = new Cell(new Phrase("公司名称: ", font)); companyBanks.setVerticalAlignment(Element.ALIGN_LEFT); companyBanks.setHorizontalAlignment(Element.ALIGN_LEFT); companyBanks.setBorderWidthTop(0); companyBanks.setBorderColor(new Color(0, 0, 0)); companyBanks.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(companyBanks); Cell companyBankss = new Cell(new Phrase("高品(北京)图像有限公司", font)); companyBankss.setVerticalAlignment(Element.ALIGN_LEFT); companyBankss.setHorizontalAlignment(Element.ALIGN_LEFT); companyBankss.setBorderWidthRight(1); companyBankss.setBorderColor(new Color(0, 0, 0)); companyBankss.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(companyBankss); // 开户行名称 Cell bankName = new Cell(new Phrase("", font)); bankName.setVerticalAlignment(Element.ALIGN_LEFT); bankName.setHorizontalAlignment(Element.ALIGN_LEFT); bankName.setBorderWidthLeft(1); bankName.setBorderColor(new Color(0, 0, 0)); bankName.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(bankName); Cell bankNames = new Cell(new Phrase("开户银行名称: ", font)); bankNames.setVerticalAlignment(Element.ALIGN_LEFT); bankNames.setHorizontalAlignment(Element.ALIGN_LEFT); bankNames.setBorderWidthTop(0); bankNames.setBorderColor(new Color(0, 0, 0)); bankNames.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(bankNames); Cell bankNamess = new Cell(new Phrase("交通银行股份有限公司北京东三环支行", font)); bankNamess.setVerticalAlignment(Element.ALIGN_LEFT); bankNamess.setHorizontalAlignment(Element.ALIGN_LEFT); bankNamess.setBorderWidthRight(1); bankNamess.setBorderColor(new Color(0, 0, 0)); bankNamess.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(bankNamess); // 开户行帐号 Cell bankNumber = new Cell(new Phrase("", font)); bankNumber.setVerticalAlignment(Element.ALIGN_LEFT); bankNumber.setHorizontalAlignment(Element.ALIGN_LEFT); bankNumber.setBorderWidthLeft(1); bankNumber.setBorderWidthBottom(1); bankNumber.setBorderColor(new Color(0, 0, 0)); bankNumber.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(bankNumber); Cell bankNumbers = new Cell(new Phrase("开户行账号: ", font)); bankNumbers.setVerticalAlignment(Element.ALIGN_LEFT); bankNumbers.setHorizontalAlignment(Element.ALIGN_LEFT); bankNumbers.setBorderWidthBottom(1); bankNumbers.setBorderColor(new Color(0, 0, 0)); bankNumbers.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(bankNumbers); Cell bankNumberss = new Cell(new Phrase("110061575018800004456", font)); bankNumberss.setVerticalAlignment(Element.ALIGN_LEFT); bankNumberss.setHorizontalAlignment(Element.ALIGN_LEFT); bankNumberss.setBorderWidthBottom(1); bankNumberss.setBorderWidthRight(1); bankNumberss.setBorderColor(new Color(0, 0, 0)); bankNumberss.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(bankNumberss); document.add(aTable); document.add(new Paragraph("\n")); } /** * 条例 * * @param sysSap * @throws DocumentException */ public void rulesTable() throws DocumentException { Table aTable = new Table(1, 2); int width1[] = { 100 }; aTable.setWidths(width1);// 设置每列所占比例 aTable.setWidth(100); // 占页面宽度 90% aTable.setAlignment(Element.ALIGN_RIGHT);// 居中显示 aTable.setAlignment(Element.ALIGN_RIGHT);// 纵向居中显示 aTable.setAutoFillEmptyCells(true); // 自动填满 aTable.setBorderWidth(0); // 边框宽度 aTable.setBorderColor(new Color(0, 125, 255)); // 边框颜色 Font font = new Font(bfChinese, 10); Cell rulesTable = new Cell(new Phrase("", font)); rulesTable.setVerticalAlignment(Element.ALIGN_LEFT); rulesTable.setHorizontalAlignment(Element.ALIGN_LEFT); rulesTable.setBorderWidth(0);; rulesTable.setBorderColor(new Color(0, 0, 0)); rulesTable.setBackgroundColor(new Color(204, 204, 204)); aTable.addCell(rulesTable); Cell rulesTables = new Cell(new Phrase( "本报价依据后附之《高品内容许可协议》或出现在高品网址www.gaopinimages.com网页内《高品内容许可协议》内条款和条件实行。签署了本许可协议表明您承认您已经阅读、理解并同意所有条款和条件。", font)); rulesTables.setVerticalAlignment(Element.ALIGN_LEFT); rulesTables.setHorizontalAlignment(Element.ALIGN_LEFT); rulesTables.setBorderWidth(0); rulesTables.setBorderColor(new Color(0, 0, 0)); rulesTables.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(rulesTables); document.add(aTable); document.add(new Paragraph("\n")); } /** * 签约 * * @param sysSap * @throws DocumentException */ public void SignTable(SysSapVo sysSap) throws DocumentException { Table aTable = new Table(4, 5); int width1[] = { 20, 30, 20, 30 }; aTable.setWidths(width1);// 设置每列所占比例 aTable.setWidth(100); // 占页面宽度 90% aTable.setAlignment(Element.ALIGN_RIGHT);// 居中显示 aTable.setAlignment(Element.ALIGN_RIGHT);// 纵向居中显示 aTable.setAutoFillEmptyCells(true); // 自动填满 aTable.setBorderWidth(0); // 边框宽度 aTable.setBorderColor(new Color(0, 125, 255)); // 边框颜色 Font font = new Font(bfChinese, 10); // 甲方 Cell companyAName = new Cell(new Phrase("甲方:", font)); companyAName.setVerticalAlignment(Element.ALIGN_LEFT); companyAName.setHorizontalAlignment(Element.ALIGN_LEFT); companyAName.setBorderWidthTop(0); companyAName.setBorderColor(new Color(0, 0, 0)); companyAName.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(companyAName); Cell companyANames = new Cell(new Phrase(sysSap.getCompanyAName(), font)); companyANames.setVerticalAlignment(Element.ALIGN_LEFT); companyANames.setHorizontalAlignment(Element.ALIGN_LEFT); companyANames.setBorderWidthTop(0); companyANames.setBorderColor(new Color(0, 0, 0)); companyANames.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(companyANames); // 乙方 Cell companyBName = new Cell(new Phrase("乙方:", font)); companyBName.setVerticalAlignment(Element.ALIGN_LEFT); companyBName.setHorizontalAlignment(Element.ALIGN_LEFT); companyBName.setBorderWidthTop(0); companyBName.setBorderColor(new Color(0, 0, 0)); companyBName.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(companyBName); Cell companyBNames = new Cell(new Phrase("高品(北京)图像有限公司", font)); companyBNames.setVerticalAlignment(Element.ALIGN_LEFT); companyBNames.setHorizontalAlignment(Element.ALIGN_LEFT); companyBNames.setBorderWidthTop(0); companyBNames.setBorderColor(new Color(0, 0, 0)); companyBNames.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(companyBNames); // 甲方盖章 Cell sealA = new Cell(new Phrase("(盖章)", font)); sealA.setVerticalAlignment(Element.ALIGN_LEFT); sealA.setHorizontalAlignment(Element.ALIGN_LEFT); sealA.setBorderWidthTop(0); sealA.setBorderColor(new Color(0, 0, 0)); sealA.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(sealA); Cell sealAs = new Cell(new Phrase("", font)); sealAs.setVerticalAlignment(Element.ALIGN_LEFT); sealAs.setHorizontalAlignment(Element.ALIGN_LEFT); sealAs.setBorderWidthTop(0); sealAs.setBorderColor(new Color(0, 0, 0)); sealAs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(sealAs); // 乙方盖章 Cell sealB = new Cell(new Phrase("(盖章)", font)); sealB.setVerticalAlignment(Element.ALIGN_LEFT); sealB.setHorizontalAlignment(Element.ALIGN_LEFT); sealB.setBorderWidthTop(0); sealB.setBorderColor(new Color(0, 0, 0)); sealB.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(sealB); Cell sealBs = new Cell(new Phrase("", font)); sealBs.setVerticalAlignment(Element.ALIGN_LEFT); sealBs.setHorizontalAlignment(Element.ALIGN_LEFT); sealBs.setBorderWidthTop(0); sealBs.setBorderColor(new Color(0, 0, 0)); sealBs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(sealBs); // 甲方授权代表人 Cell personA = new Cell(new Phrase("授权代表人:", font)); personA.setVerticalAlignment(Element.ALIGN_LEFT); personA.setHorizontalAlignment(Element.ALIGN_LEFT); personA.setBorderWidthTop(0); personA.setBorderColor(new Color(0, 0, 0)); personA.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(personA); Cell personAs = new Cell(new Phrase("", font)); personAs.setVerticalAlignment(Element.ALIGN_LEFT); personAs.setHorizontalAlignment(Element.ALIGN_LEFT); personAs.setBorderWidthTop(0); personAs.setBorderColor(new Color(0, 0, 0)); personAs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(personAs); // 乙方授权代表人 Cell personB = new Cell(new Phrase("授权代表人:", font)); personB.setVerticalAlignment(Element.ALIGN_LEFT); personB.setHorizontalAlignment(Element.ALIGN_LEFT); personB.setBorderWidthTop(0); personB.setBorderColor(new Color(0, 0, 0)); personB.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(personB); Cell personBs = new Cell(new Phrase("", font)); personBs.setVerticalAlignment(Element.ALIGN_LEFT); personBs.setHorizontalAlignment(Element.ALIGN_LEFT); personBs.setBorderWidthTop(0); personBs.setBorderColor(new Color(0, 0, 0)); personBs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(personBs); // 甲方签署 Cell signA = new Cell(new Phrase("签署:", font)); signA.setVerticalAlignment(Element.ALIGN_LEFT); signA.setHorizontalAlignment(Element.ALIGN_LEFT); signA.setBorderWidthTop(0); signA.setBorderColor(new Color(0, 0, 0)); signA.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(signA); Cell signAs = new Cell(new Phrase("", font)); signAs.setVerticalAlignment(Element.ALIGN_LEFT); signAs.setHorizontalAlignment(Element.ALIGN_LEFT); signAs.setBorderWidthTop(0); signAs.setBorderColor(new Color(0, 0, 0)); signAs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(signAs); // 乙方签署 Cell signB = new Cell(new Phrase("签署:", font)); signB.setVerticalAlignment(Element.ALIGN_LEFT); signB.setHorizontalAlignment(Element.ALIGN_LEFT); signB.setBorderWidthTop(0); signB.setBorderColor(new Color(0, 0, 0)); signB.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(signB); Cell signBs = new Cell(new Phrase("", font)); signBs.setVerticalAlignment(Element.ALIGN_LEFT); signBs.setHorizontalAlignment(Element.ALIGN_LEFT); signBs.setBorderWidthTop(0); signBs.setBorderColor(new Color(0, 0, 0)); signBs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(signBs); // 甲方签署日期 Cell timeA = new Cell(new Phrase("日期:", font)); timeA.setVerticalAlignment(Element.ALIGN_LEFT); timeA.setHorizontalAlignment(Element.ALIGN_LEFT); timeA.setBorderWidthTop(0); timeA.setBorderColor(new Color(0, 0, 0)); timeA.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(timeA); Cell timeAs = new Cell(new Phrase(" 年 月 日", font)); timeAs.setVerticalAlignment(Element.ALIGN_LEFT); timeAs.setHorizontalAlignment(Element.ALIGN_LEFT); timeAs.setBorderWidthTop(0); timeAs.setBorderColor(new Color(0, 0, 0)); timeAs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(timeAs); // 乙方签署 Cell timeB = new Cell(new Phrase("日期:", font)); timeB.setVerticalAlignment(Element.ALIGN_LEFT); timeB.setHorizontalAlignment(Element.ALIGN_LEFT); timeB.setBorderWidthTop(0); timeB.setBorderColor(new Color(0, 0, 0)); timeB.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(timeB); Cell timeBs = new Cell(new Phrase(" 年 月 日", font)); timeBs.setVerticalAlignment(Element.ALIGN_LEFT); timeBs.setHorizontalAlignment(Element.ALIGN_LEFT); timeBs.setBorderWidthTop(0); timeBs.setBorderColor(new Color(0, 0, 0)); timeBs.setBackgroundColor(new Color(255, 255, 255)); aTable.addCell(timeBs); document.add(aTable); document.add(new Paragraph("\n")); } public void closeDocument() throws DocumentException { this.document.close(); } /** * 导出 * * @param file * word文件(路径+文件名),word文件自动创建 * @param dataList * 数据 * @return * @throws XmlException * @throws IOException * @throws DocumentException */ public static boolean getSapWord(SysSapVo sysSap, File file,HttpServletResponse response) throws IOException, XmlException, DocumentException { WordUtils wt = new WordUtils(); String path = ""; if(StringUtils.isNotBlank(sysSap.getItemName())){ path= "d:\\aaa\\" + sysSap.getItemName() + ".doc"; }else{ path= "d:\\aaa\\" + sysSap.getContractId() + ".doc"; } wt.openDocument(path); wt.insertImg(sysSap, sysSap.getPhoneB() + "/gaopinimages.png", Image.ALIGN_LEFT, 13, 13, 13, 13, 13, 13); wt.insertTitle("高品内容许可协议", 12, Font.BOLD, Element.ALIGN_CENTER); wt.insertRiskTable(sysSap); wt.insertRiskEvaluationTable(sysSap); // RM if ("1".equals(sysSap.getEmailB())) { wt.insertTitle("RM免版税内容", 12, Font.BOLD, Element.ALIGN_CENTER); wt.RMTable(sysSap); } // 2 RF if ("2".equals(sysSap.getEmailB())) { wt.insertTitle("RF免版税内容", 12, Font.BOLD, Element.ALIGN_CENTER); wt.RFTable(sysSap); } // 2 RF if ("3".equals(sysSap.getEmailB())) { wt.insertTitle("RM免版税内容", 12, Font.BOLD, Element.ALIGN_CENTER); wt.RMTable(sysSap); wt.insertTitle("RF免版税内容", 12, Font.BOLD, Element.ALIGN_CENTER); wt.RFTable(sysSap); } if (!"0".equals(sysSap.getServiceMoney()) && !"0.00".equals(sysSap.getServiceMoney())) { wt.serviceMoneyTable(sysSap); } wt.moneyTable(sysSap); wt.signTable(); wt.rulesTable(); wt.SignTable(sysSap); wt.closeDocument();

// OutputStream output = new FileOutputStream(path); // wt.write(output); // output.flush(); // output.close(); File files = new File(path); FileInputStream fileIntput = new FileInputStream(files); response.setContentType(“application/vnd.ms-word”); // response.setContentType(“application/octet-stream”); response.addHeader(“Content-Disposition”, “attachment;filename=”+sysSap.getContractId() + “.doc”); OutputStream ouputStream = response.getOutputStream(); // String urlString = “http://weitu-650-water.bj.bcebos.com/233107877533.jpg“; // URL url = new URL(urlString); DataInputStream dataInputStream = new DataInputStream(fileIntput);

byte[] buffer = new byte[1024]; int length; while ((length = dataInputStream.read(buffer)) > 0) { ouputStream.write(buffer, 0, length); } dataInputStream.close();

// wb.write(ouputStream); ouputStream.flush(); ouputStream.close();

System.out.println("导出成功"); boolean isSucess = true; return isSucess; } private void write(OutputStream output) { // TODO Auto-generated method stub }

}

转载请注明原文地址: https://www.6miu.com/read-36932.html

最新回复(0)