我正在使用jquery从我的页面抓取HTML并在新窗口中打开它进行打印。我必须自定义一些样式,以便在打印时格式化。我的主页上有一个表function get_events_data($limit='',$offset='',$type='calendar',$option=1)
{
$search_input = $this->session->userdata('search_input');
$this->db->set_dbprefix('');
$this->db->_protect_identifiers=false;
db_select('mu.fullname',false);
db_select('mu.username');
db_select('me.event_id');
db_select('me.user_id');
db_select('me.user_type');
db_select('me.event_name');
db_select('me.url_id');
db_select('me.event_details');
db_select('me.is_payment_required');
db_select('mec.remarks');
db_select('mec.fee');
db_select('mec.max_pax');
db_select('mec.bal_pax');
db_select('mec.deleted_status');
db_select('mec.calendar_id');
db_select('mec.event_state_id');
db_select('mec.venue_location');
db_select('mec.dt_start,mec.dt_end');
db_select('mec.approval_status,mec.deleted_status');
db_where('mec.dt_start >= ',time());
db_where('mec.dt_start <=',strtotime(MAX_TIME_EVENT_CALENDAR_DISPLAY));
db_join('m_event_calendar mec','mec.event_id=me.event_id','left');
db_join('m_users mu','mu.user_id=me.user_id','left');
if($type=='event_list' || $type == 'url_id'):
$this->db->group_by('FROM_UNIXTIME(mec.dt_start, "%Y-%M-%d")');
endif;
db_order('FROM_UNIXTIME(mec.dt_start)','asc');
if($this->curuser):
db_where('(me.user_id = '.$this->curuser['user_id'].' or me.approval_status = '.EVENT_APRROVAL_STATUS_APPROVED.')');
else:
db_where('me.approval_status',EVENT_APRROVAL_STATUS_APPROVED);
endif;
db_where('mec.deleted_status',EVENT_DELETED_STATUS_NO);
if(!empty($search_input)):
$this->db->like('me.event_name', $search_input,'match');
$this->db->or_like('me.venue_location', $search_input,'match');
endif;
if($limit == '' || $offset == ''):
$sql = db_get('m_event_list me');
else:
$sql = db_get('m_event_list me', $limit, uri_segment($offset));
endif;
if($option==1):
$array = $sql->result_array();
else:
$array = $sql;
endif;
$this->db->set_dbprefix('m_');
if($array):
return $array;
endif;
}
来定义列的宽度,但是当我打印它时,我隐藏了最后一列(因为它有一个按钮,打印输出不需要,并且按钮在打印时抛出格式),但列的宽度仍然是由colgroup引起的。如果我从表中删除colgroup,非隐藏列填充宽度,格式是完美的。我不知道如何删除打印窗口上的colgroup节点,而不是从原始窗口删除它(这不可能发生)。这是我的打印代码:
<colgroup>
我想从内容中删除colgroup,或者从newWin中删除它,但我不知道如何执行此操作。 $(“colgroup”)。remove()将从原始页面删除它,而不是从新窗口删除它。
答案 0 :(得分:3)
您可以将display:none
隐藏在打印样式表中,而不是删除。
@media print {
...
.colgroup {
display:none;
}
}
答案 1 :(得分:1)
你应该这样做:
var newPage = $('#newWin'); //Or whatever the new page will be
var content = $("#pdf-area").clone();
newPage.html(content.find('.colgroup').remove() );
诀窍是克隆内容而不是抓取原始内容并将其存储在变量中,然后您可以根据需要修改它而不更改原始内容。