java导出pdf 的js

/**

 *  => 将要导出为 文档的<Ttable>内容,以字符串形式传递到后台

 *  => 实现导出多个<Table>、多个<img>

 * 

 * 图片导出说明::前台<table>必须包含<caption>元素

 * 

 * @param {Object} tableId 表示<Table>的id: 此方法中是使用匹配id的方式来传递多个<Table>的内容,以便导出

 * @param {Object} type 导出的类型(pdf、excel、jpg、doc)

 * @param {Object} title 导出文件的标题

 * @param {Object} url servlet URL

 * @param {Object} imgId 表示<img>的id

 * @memberOf {TypeName} 

 * @return {TypeName} 

 * @author yyh 2014年7月22日

 */

function export_report(tableId, type, title ,url, imgId ) {


var tableBody = "";

var tableCaption = "";   // 从<caption>中取<Table>的标题

var tableCol = ""; // 表示table的列数

var widthTD = ""; // 用于存储每个table的所有列的宽度值,列与列的分隔符“,”,表与表的分隔符“;”

$("table[id^=" + tableId + "]").each(function(j, _table) {

var len = $("#" + $(this).attr("id") + " img").size();

if( len > 0 )

{

var url = "";

$("#" + $(this).attr("id") + " img").each(function(){

url += $(this).attr("src") + " #TD#"; //以每一张图片作为一个TD

});

tableCaption += "#IMG#"; //用于标识图片table

tableCol =  tableCol + 1 + ";" ;

tableBody += url + " #TD#"; // 作为Cell<td>分隔符

tableBody += "#ROW#"; // 作为Row<tr>分隔符

}

else

{

var col = 0;

$("#" + $(this).attr("id") + " tr").each(function(i, _tr) {

$(_tr).children().each(function(k, _td) {

var colspan = $(_td).attr("colspan");

var rowspan = $(_td).attr("rowspan");

var align  = $(_td).attr("align");

var valign  = $(_td).attr("valign");

if(align != ""){

tableBody += align + "#ALIGN#";

}

if(valign != ""){

tableBody += valign + "#VALIGN#";

}

if (i == 0) {

var width  = $(_td).attr("width");   // 说明:设置表格第一行所有列的width属性

if(colspan > 1){ //  跨列

col = col + colspan;

if(width > 0){

for(var t = 0;t < colspan;t++){ // 第一行中存在跨列的情况下,平均分配列宽

widthTD += width/colspan + ","; 

}

}

}else{

col ++;

if(width > 0){

widthTD += width + ","; 

}

}

if(colspan > 1){ //  跨列

if(rowspan > 1){ //  跨行

tableBody += $.trim($(_td).text()) + "#ROWSPAN#" + rowspan + "#COLSPAN#" + colspan + " #TD#";

}else{

tableBody += $.trim($(_td).text()) + "#COLSPAN#" + colspan + " #TD#";// 作为Cell<td>分隔符

}

}else{

if(rowspan > 1){ //  跨行

tableBody += $.trim($(_td).text()) + "#ROWSPAN#" + rowspan + " #TD#";

}else{

tableBody += $.trim($(_td).text()) + " #TD#";// 作为Cell<td>分隔符

}

}

});

tableBody += "#ROW#"; // 作为Row<tr>分隔符

});

tableCol =  tableCol + col;

if($("#" + $(this).attr("id") + " input[id=pagination]").length>0)

{

tableCol += "#PAGINATION#";// 用来判断是否分页的标识,在需要分页的表格后边加上一个<input id="pagination" type="hidden">用来new Page

}

if($("#" + $(this).attr("id") + " input[id=noBorder]").length>0)

{

tableCol += "#NOBORDER#"; // 用来判断是否显示边框的标识,在需要分页的表格后边加上一个<input id="noBorder" type="hidden">

}

tableCol += ";" ;

}

widthTD += ";";

tableBody += "#TABLE#"; // 作为Table<table>分隔符

tableCaption += $("#" + $(this).attr("id") + " caption").text() + "#CAPTION#"; 

});

if (tableBody == "") {

alert("TableBody Error!");

return false;

}

 

$("#export_report_div").remove();

var dataDiv = "<div id='export_report_div'>";

dataDiv += "<form action='" + url + "' method='post' id='report_export_form'>"

dataDiv += "<input type='hidden' name='title' value='" + title + "' />";

dataDiv += "<input type='hidden' name='type' value='" + type + "'/>";

dataDiv += "<input type='hidden' name='tableCol' value='" + tableCol + "'/>";

dataDiv += "<input type='hidden' name='tableBody'  value='" + tableBody + "'/>";

dataDiv += "<input type='hidden' name='tableCaption'  value='" + tableCaption+ "'/>";

dataDiv += "<input type='hidden' name='widthTD'  value='" + widthTD+ "'/>";

dataDiv += "</form>";

dataDiv += "</div>";

$(document.body).append(dataDiv);

$("#report_export_form").submit();

}


你可能感兴趣的:(java导出pdf 的js)