我正在使用Laravel-snappy,我试图绝对定位6列,以便每页打印3个。
查看
...
body {
position: relative;
}
.col1-1 {
text-align: right;
background-color: #00dd00;
position: absolute;
top: 0px;
left: 0px;
width: 250px;
height: 11in;
}
.col1-2 {
text-align: right;
position: absolute;
background-color: #1c94c4;
top: 0px;
left: 270px;
width: 250px;
height: 11in;
}
.col1-3 {
text-align: right;
background-color: #46b8da;
position: absolute;
top: 0px;
left: 540px;
width: 250px;
height: 11in;
}
.col2-1 {
text-align: right;
background-color: #dd0100;
position: absolute;
top: 11in;
left: 0px;
width: 250px;
height: 11in;
}
.col2-2 {
text-align: right;
position: absolute;
background-color: #c4770b;
top: 11in;
left: 270px;
width: 250px;
height: 11in;
}
.col2-3 {
text-align: right;
background-color: #da0073;
position: absolute;
top: 11in;
left: 540px;
width: 250px;
height: 11in;
}
</style>
</head>
<body>
<div class="col1-1"></div>
<div class="col1-2"></div>
<div class="col1-3"></div>
<div class="col2-1"></div>
<div class="col2-2"></div>
<div class="col2-3"></div>
....
控制器
return $pdf->stream('page.pdf');
return view('page');
问题是列变短了,所以第2行从第1页开始......
我将页面大小设置为字母
'pdf' => array(
'enabled' => true,
'binary' => 'C:\wkhtmltopdf\bin\wkhtmltopdf',
'timeout' => false,
'options' => array('page-size'=>'letter'),
所以我不确定下一步该做什么......
我觉得这是一个缩放问题?
如果我不使用Snappy,只是在屏幕上显示页面并以PDF格式打印屏幕,结果会好得多(只有几个像素关闭),但当然我需要将页面返回为PDF。
答案 0 :(得分:0)
Snappy使用wkhtmltopdf,后者又使用Webkit呈现HTML。 (如果我的建议无法帮助您,可能会帮助您找到更多信息,因为您的问题可能与Snappy无关。)
我认为您可以通过阻止页面在列内部破坏来解决您的问题。为此,您可以在每个列上使用以下CSS:
page-break-after: avoid
您也可以尝试在div中包装3列并在包装div上应用该css。
您还可以在列上尝试page-break-before: avoid
或 public void actionPerformed(ActionEvent e) {
int saveType = 0;
String buttonString = e.getActionCommand();
if (buttonString.equals("Shutdown >>")) {
shutdownServer();
}
else if (buttonString.equals("Save >>")) {
JFileChooser fc = new JFileChooser();
fc.setCurrentDirectory(new java.io.File("."));
fc.setDialogTitle("Save file");
FileNameExtensionFilter filter = new FileNameExtensionFilter(".txt", "txt", "text");
fc.setFileFilter(filter);
int select = fc.showSaveDialog(null);
if (select == JFileChooser.APPROVE_OPTION)
{
File fi = fc.getSelectedFile();
fileName = fi.getPath();
if (fileRB.isSelected()) {
dbDisplaytx.setText("REPORT SAVED TO FILE");
saveType = 1;
}
else if (databaseRB.isSelected()) {
dbDisplaytx.setText("REPORT SAVED TO DATABASE");
saveType = 2;
}
else if (bothRB.isSelected()) {
dbDisplaytx.setText("REPORT SAVED TO BOTH FILE & DATABASE");
saveType = 3;
}
else {
// stub to test radio button
dbDisplaytx.setText("WRONG SELECTION");
}
}
produceProfileReport(saveType);
}
}
,或者在列集之间创建一个空div,并使用`page-break-after:always&#39;来设置样式。