html - 打印时需要控制表格列的宽度
问题描述
我在我的 Visualforce 页面中使用 Bootstrap,并且在生成 Vf 页面时表格看起来还不错。
我需要使用 ctrl+P 打印它,但是当其中一个列值(名称)变得太大时,表格在打印中被截断。
所以我添加了表格固定布局和自动换行。
现在它可以正常工作了,但是现在所有列的宽度都相同,序列号和名称的宽度相同,这看起来很尴尬。
链接中的表格图像
<div class="row" style="padding-bottom:20px;">
<div class="col-md-12">
<table class="table table-sm table-bordered">
<thead>
<tr style="background-color:#00205b">
<th style="color:#ffffff;border-bottom-color:#bf0d3e;" rowspan="2">#</th>
<th style="color:#ffffff;border-bottom-color:#bf0d3e;" rowspan="2">Employee/Dependent</th>
<th style="color:#ffffff;border-bottom-color:#bf0d3e;" rowspan="2">Relationship</th>
<apex:repeat value="{!planMetadataMap }" var="planName">
<th style="color:#ffffff;text-align:center;" colspan="2" rowspan="1">{!planName}</th>
</apex:repeat>
</tr>
<tr style="background-color:#00205b">
<apex:repeat value="{!planMetadataMap}" var="planMeta">
<apex:repeat value="{!planMetadataMap[planMeta]}" var="planMetavalue">
<th style="color:#ffffff;border-bottom-color:#bf0d3e;" rowspan="1">{!planMetavalue}</th>
</apex:repeat>
</apex:repeat>
</tr>
</thead>
<tbody>
<apex:repeat value="{!qliWrapperMainList}" var="qliWrapperlist">
<apex:repeat value="{!qliWrapperlist}" var="qliWrapper">
<tr style="background-color:#fafafa">
<td>{!qliWrapper.seq_number}</td>
<apex:outputPanel rendered="{!(qliWrapper.relation==null)}">
<td>{!qliWrapper.Name}</td>
</apex:outputPanel>
<apex:outputPanel rendered="{!(qliWrapper.relation!=null)}">
<td style="padding-left:20px;">- {!qliWrapper.Name}</td>
</apex:outputPanel>
<td>{!qliWrapper.relation}</td>
<apex:repeat value="{!planMetadataMap}" var="planMain">
<apex:repeat value="{!planMetadataMap[planMain]}" var="mapSubPlan">
<td>${!qliWrapper.planMap[planMetadataMap[planMain][mapSubPlan]]}</td>
</apex:repeat>
</apex:repeat>
</tr>
</apex:repeat>
<tr>
<td style="border-bottom-color:#533278;"></td>
<td style="border-bottom-color:#533278;"></td>
<td style="border-bottom-color:#533278;text-align:right">Family Total</td>
<apex:repeat value="{!planMetadataMap}" var="planMain">
<apex:repeat value="{!planMetadataMap[planMain]}" var="mapSubPlan">
<td style="border-bottom-color:#533278;text-align:right">${!qliWrapperlist[0].planTotal[planMetadataMap[planMain][mapSubPlan]]}</td>
</apex:repeat>
</apex:repeat>
</tr>
</apex:repeat>
</tbody>
</table>
</div>
为打印添加的代码:-
<style>
@media print {
.table th { word-wrap: break-word; background-color: #eeeeee
!important; color: #333333 !important; }
.table td { word-wrap: break-word; background-
color: #ffffff !important; color: #333333
!important; }
.table { table-layout: fixed !important; }
}
</style>
解决方案
如果愿意,您可以将任何 td 的 with 设置为 XYZ。然后单词会中断,并且表格适合打印页边距。
例如:
<style>
@media print {
.table th {
word-wrap: break-word;
background-color: #eeeeee !important;
color: #333333 !important;
}
.table td {
max-width:10%;
background-color: #ffffff !important;
color: #333333 !important;
}
.table {
table-layout: fixed !important;
}
}
</style>
推荐阅读
- reactjs - 使用“Navigate(-1)”无法返回 Gatsby 中的先前位置
- r - 使用列值作为列表数据帧中的数据帧索引(使用 seq_along 映射或应用)?
- node.js - 添加 ejs 模板时本地主机没有响应
- google-sheets - 将数据标签(注释?)添加到从查询中提取的 Google 图表(可视化 API)
- android - 使用 MediaPlayer 播放声音时出现无效属性错误
- java - 为什么我的实例变量可以在没有实例的情况下访问?
- python - 个人资料图片未显示在 django 模板基础 html 页面中
- c# - 如何在 1 个视图中使用 2 个模型
- python - 添加两个一维数组给了我一个二维数组(python)
- unity3d - Unity:SpeechLib 在编辑器中运行良好,但在运行时不运行