JAVA PDF模板中插入对象并重构PDF文件,并发邮件

import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.zip.CRC32;
import java.util.zip.CheckedOutputStream;

import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipOutputStream;


import com.itextpdf.text.Chunk;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.AcroFields;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfCopy;
import com.itextpdf.text.pdf.PdfImportedPage;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import com.itextpdf.text.pdf.PdfWriter;

import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.util.Zip4jConstants;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

/**
 * 这个功能的设计思路是先读取模板,往里面填值,填完以后输出为新的PDF,再读取新的PDF文件,往里面添加表格。表格的位置由new document的参数决定,具体位置多调试
 * 
 * @author Jinh
 * 
 */
public class MCTransferMsgQueryServiceImpl extends MCQueryService<MCTransferMsgQueryRequest, MCTransferMsgQueryResponse>
        implements MCTransferMsgQueryService {
    private SendMailService routerService;
    private static final String fontPath = "楷体_GB2312.ttf";
    private String templatePath;
    private String newPDFPath;
    private String from;
    private String smtpHost;
    private String userName;
    private String password;
    private String outPath;
    private String finalPath;
    private EAccountService eaccountService;
    private EAccountQueryService eaccountQueryService;
    private PActMsgQryService actrouterService;
    private AccountQueryService accountQueryService;
    private OtpSmsService otpSmsService;
    
    
    public OtpSmsService getOtpSmsService() {
        return otpSmsService;
    }
    public void setOtpSmsService(OtpSmsService otpSmsService) {
        this.otpSmsService = otpSmsService;
    }
    public SendMailService getRouterService() {
        return routerService;
    }

    public void setRouterService(SendMailService routerService) {
        this.routerService = routerService;
    }

    public String getTemplatePath() {
        return templatePath;
    }

    public void setTemplatePath(String templatePath) {
        this.templatePath = templatePath;
    }

    public String getNewPDFPath() {
        return newPDFPath;
    }

    public void setNewPDFPath(String newPDFPath) {
        this.newPDFPath = newPDFPath;
    }

    public String getSmtpHost() {
        return smtpHost;
    }

    public String getFrom() {
        return from;
    }

    public void setFrom(String from) {
        this.from = from;
    }

    public void setSmtpHost(String smtpHost) {
        this.smtpHost = smtpHost;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public static String getFontpath() {
        return fontPath;
    }
    
    public String getOutPath() {
        return outPath;
    }

    public void setOutPath(String outPath) {
        this.outPath = outPath;
    }

    public EAccountQueryService getEaccountQueryService() {
        return eaccountQueryService;
    }

    public void setEaccountQueryService(EAccountQueryService eaccountQueryService) {
        this.eaccountQueryService = eaccountQueryService;
    }
    
    public PActMsgQryService getActrouterService() {
        return actrouterService;
    }

    public void setActrouterService(PActMsgQryService actrouterService) {
        this.actrouterService = actrouterService;
    }

    public String getFinalPath() {
        return finalPath;
    }

    public void setFinalPath(String finalPath) {
        this.finalPath = finalPath;
    }
    
    public AccountQueryService getAccountQueryService() {
        return accountQueryService;
    }

    public void setAccountQueryService(AccountQueryService accountQueryService) {
        this.accountQueryService = accountQueryService;
    }
    
    public EAccountService getEaccountService() {
        return eaccountService;
    }

    public void setEaccountService(EAccountService eaccountService) {
        this.eaccountService = eaccountService;
    }

    @SuppressWarnings({ "rawtypes", "unchecked" })
    public MCTransferMsgQueryResponse query(MCTransferMsgQueryRequest request) {
        routerService.setRequestContext(this.getRequestContext());// 从上下文取requestContext
        eaccountQueryService.setRequestContext(this.getRequestContext());
        actrouterService.setRequestContext(this.getRequestContext());
        eaccountService.setRequestContext(this.getRequestContext());
        accountQueryService.setRequestContext(this.getRequestContext());
        otpSmsService.setRequestContext(this.getRequestContext());
        String MChannel = this.getRequestContext().getRequestMChannelId();
        List<Map> pdflist =null;
        Map pdfmap =null;
        /*查询交易明细取List*/
        if("PEAC".equals(request.getBankAcType())){
            Map param =new HashMap();
            param.put("AcNo", request.getAcNo());
            param.put("TrsPassword", request.getTrsPassword());
            eaccountService.validateEAcPassWord(param);
            if(!eaccountService.getResponseContext().getResponseRejCode().equals(ResponseContext.SUCCESS)){

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值