Я передаю HTML-документ в itextpdf, который занимает 2 страницы. В начале документа находится логотип компании, затем несколько таблиц и, наконец, логотип компании-клиента первой компании. Оба логотипа находятся внутри таблиц. Не знаю почему. Был уже установлен этот путь.
Когда путь к изображениям найден, все работает просто отлично. Но когда первое изображение не найдено, я не получаю второй страницы. Если второе изображение не найдено, все в порядке.
Самое смешное, что если я добавлю тег с текстом внутри до или после таблицы второго изображения, все будет в порядке, независимо от того, найдены ли оба изображения,
Я исправляю ошибки для компании, поэтому поток отверстий для этой системы, над которой я работаю, уже настроен. Программное обеспечение читает документ HTML в строку в Java. А затем распечатайте его, используя itextpdf.
Это HTML-код, который читается из файла "test2.html", который служит шаблоном.
<!DOCTYPE html>
<html lang="en">
<head>
<title>#Title</title>
<style>
html, body {
padding:0;
margin:0;
}
@page {
size:4in 11in;
}
@media print {
body {
transform: scale(1.00);
}
@page {
margin:2px;
}
}
body {
font-family: Verdana, sans-serif;
font-size: 10px;
}
.divTicketWrapper {
margin: auto;
min-width: 60em;
<!-- width:50%; -->
}
.scaled {
transform: scale(0.7); /* Equal to scaleX(0.7) scaleY(0.7) */
background-color: pink;
}
.divRow {
margin-top:0.2em;
overflow: auto;
}
h1, h2, h3, h4, h5, h6 {
margin:0.2em;
}
header {
height:100px;
display:block;
}
.headerLogo {
float:left;
}
.headerInfo {
overflow:auto;
text-align:center;
float:right;
font-size: 12px;
font-weight:bold;
}
article {
}
section {
padding: 0.1em 0 0.1em 0;
border:none;
}
.section{
background-color:#FFCC99;
color:#000000;
text-align:center;
}
.sectionHeader {
background-color:#FFCC99;
color:#000000;
text-align:center;
}
.divLeftColumn {
float:left;
padding-right:0.2em;
}
.divRightColumn {
overflow: auto;
float:right;
}
.divLabel {
overflow:hidden;
float:left;
white-space: nowrap;
font-weight:bold;
padding-right:0.2em;
font-size: 10px;
width:20%;
}
.divField {
background-color: #DDDDDD;
white-space: nowrap;
overflow:hidden;
font-size: 10px;
}
.divFieldWrap {
white-space: normal;
max-height:4em;
}
.divLabelBackGround {
background-color:#FFCC99;
color:#000000;
text-align:center;
font-size:10px;
font-weight:bold;
height:20px;
}
</style>
</head>
<body>
<div class="divTicketWrapper">
<header>
<div class="headerLogo"><img src="T:/orgs/images/logo.png" alt="logo" width="130" height="100" style="width:130px; height:100px;" ></img></div>
<div class="headerInfo">
<div style="font-size:18px; font-weight:bold;"> TRANSPORT, LLC</div>
<div>SOUTH US</div>
<div>US, 123344</div>
<div>EMERGENCY CONTACT: 12345667</div>
</div>
</header>
<div style="height:10px"></div>
<!-- LOAD INFORMATION -->
<section>
<div style="text-align:center;color:red"><h3></h3></div>
<div class="sectionHeader" width="100%">
<h3 style="font-size:10px;"> INFORMATION</h3>
</div>
<table width="100%">
<tr width="100%">
<td class="divLabel">Product Type:</td>
<td class="divField" colspan="3"> product 1</td>
</tr>
<tr width="100%">
<td class="divLeftColumn divLabel">BOL #:</td>
<td class="divLeftColumn divField">1234556</td>
<td class="divRightColumn divLabel">Trucked By:</td>
<td class="divRightColumn divField"> TRANSPORT, LLC</td>
</tr>
<tr width="100%">
<td class="divLeftColumn divLabel">Ticket #:</td>
<td class="divLeftColumn divField">123243355</td>
<td class="divRightColumn divLabel">Accepted Date/Time:</td>
<td class="divRightColumn divField">04/28/2000 22:07</td>
</tr>
<tr width="100%">
<td class="divLeftColumn divLabel">Split Ticket # w/ #:</td>
<td class="divLeftColumn divField"></td>
<td class="divRightColumn divLabel">Confirmation #:</td>
<td class="divRightColumn divField">1233223423</td>
</tr>
<!-- DROP OFF TICKET NUMBER -->
<tr width="100%">
<td class="divLeftColumn divLabel"> Receipt #:</td>
<td class="divLeftColumn divField"></td>
<td class="divRightColumn divLabel">DO Receipt #:</td>
<td class="divRightColumn divField"></td>
</tr>
</table>
</section>
<section>
<div class="sectionHeader" width="100%">
<h3 style="font-size:10px;">INFORMATION</h3>
</div>
<table width="100%">
<tr width="100%">
<td class="divLabel">INFORMATION:</td>
<td class="divField" colspan="3">TRANSPORT LLC</td>
</tr>
<tr width="100%">
<td class="divLabel"> Name:</td>
<td class="divField" colspan="3">TRANSPORT A 2,3,4</td>
</tr>
<tr width="100%">
<td class="divLabel">Operator:</td>
<td class="divField" colspan="3">TRANSPORT</td>
</tr>
<tr width="100%">
<td class="divLeftColumn divLabel">PickUp #:</td>
<td class="divLeftColumn divField">TRANSPORT</td>
<td class="divRightColumn divLabel">Arrival Date & Time::</td>
<td class="divRightColumn divField">04/28/2000 22:39</td>
</tr>
<tr width="100%">
<td class="divLeftColumn divLabel">PickUp #:</td>
<td class="divLeftColumn divField"></td>
<td class="divRightColumn divLabel">Load Time:</td>
<td class="divRightColumn divField">00:08</td>
</tr>
<tr width="100%">
<td class="divLeftColumn divLabel">Legal Description:</td>
<td class="divLeftColumn divField"></td>
<td class="divRightColumn divLabel">Wait Time:</td>
<td class="divRightColumn divField">00:00</td>
</tr>
<tr width="100%">
<td class="divLeftColumn divLabel">Latitude:</td>
<td class="divLeftColumn divField">1212324343</td>
<td class="divRightColumn divLabel">Pickup Date & Time:</td>
<td class="divRightColumn divField">04/28/2000 22:47</td>
</tr>
<tr width="100%">
<td class="divLeftColumn divLabel">Longitude:</td>
<td class="divLeftColumn divField">123322344</td>
<td class="divRightColumn divLabel">Loaded Miles:</td>
<td class="divRightColumn divField">100</td>
</tr>
<tr width="100%">
<td class="divLabel">County, State::</td>
<td class="divField" colspan="3">TRANSPORT</td>
</tr>
<tr width="100%">
<td class="divLabel">Wait Time Notes:</td>
<td class="divField" colspan="3"></td>
</tr>
<tr width="100%">
<td class="divLabel">Reject Notes:</td>
<td class="divField" colspan="3"></td>
</tr>
<tr width="100%">
<td class="divLabel">Other Notes:</td>
<td class="divField" colspan="3">Tank In Production;</td>
</tr>
</table>
</section>
<section> <div class="sectionHeader" width="100%"><h3 style="font-size:10px;">PICK UP</h3></div><table width="100%"> <tr><td class="divLeftColumn divLabel">TRANSPORT</td> <td class="divLeftColumn divField divFieldWrap">ACCEPT</td> <td class="divRightColumn divLabel">TRANSPORT</td> <td class="divRightColumn divField divFieldWrap"></td> </tr><tr><td class="divLeftColumn divLabel">TRANSPORT Type</td> <td class="divLeftColumn divField divFieldWrap">TRANSPORT</td> <td class="divRightColumn divLabel">BS&W(%)</td> <td class="divRightColumn divField divFieldWrap">0.1</td> </tr><tr><td class="divLeftColumn divLabel">TRANSPORT</td> <td class="divLeftColumn divField divFieldWrap">TRANSPORT</td> <td class="divRightColumn divLabel">TRANSPORT</td> <td class="divRightColumn divField divFieldWrap">90.0</td> </tr><tr><td class="divLeftColumn divLabel">TRANSPORT</td> <td class="divLeftColumn divField divFieldWrap">0.0</td> <td class="divRightColumn divLabel">TRANSPORT</td> <td class="divRightColumn divField divFieldWrap">90.0</td> </tr><tr><td class="divLeftColumn divLabel">TRANSPORT</td> <td class="divLeftColumn divField divFieldWrap">0.01</td> <td class="divRightColumn divLabel">TRANSPORT</td> <td class="divRightColumn divField divFieldWrap">90.0</td> </tr><tr><td class="divLeftColumn divLabel">TRANSPORT</td> <td class="divLeftColumn divField divFieldWrap">0 ft 0 in 0 in <br></br>(0.0 in)</td> <td class="divRightColumn divLabel">TRANSPORT</td> <td class="divRightColumn divField divFieldWrap">53.0</td> </tr><tr><td class="divLeftColumn divLabel">TRANSPORT</td> <td class="divLeftColumn divField divFieldWrap">0 ft 0 in 0 in <br></br>(0.0 in)</td> <td class="divRightColumn divLabel">TRANSPORT</td> <td class="divRightColumn divField divFieldWrap">49.9</td> </tr><tr><td class="divLeftColumn divLabel">TRANSPORT</td> <td class="divLeftColumn divField divFieldWrap">194.0</td> <td class="divRightColumn divLabel">TRANSPORT</td> <td class="divRightColumn divField divFieldWrap">TRANSPORT</td> </tr><tr><td class="divLeftColumn divLabel">TRANSPORT</td> <td class="divLeftColumn divField divFieldWrap">190.53</td> <td class="divRightColumn divLabel">TRANSPORT</td> <td class="divRightColumn divField divFieldWrap">04/28/2000 22:39</td> </tr><tr><td class="divLeftColumn divLabel">TRANSPORT</td> <td class="divLeftColumn divField divFieldWrap">190.72</td> <td class="divRightColumn divLabel">TRANSPORT</td> <td class="divRightColumn divField divFieldWrap">121313</td> </tr><tr><td class="divLeftColumn divLabel">TRANSPORT</td> <td class="divLeftColumn divField divFieldWrap">0 ft 0 in 0 in <br></br>(0.0 in)</td> <td class="divRightColumn divLabel">TRANSPORT</td> <td class="divRightColumn divField divFieldWrap">04/28/2000 22:47</td> </tr> </table> </section>
<!-- / PICKUP INFORMATION -->
<section> <div class="sectionHeader" width="100%"><h3 style="font-size:10px;">PICK UP</h3></div><table width="100%"> <tr><td class="divLeftColumn divLabel">TRANSPORT</td> <td class="divLeftColumn divField divFieldWrap">ACCEPT</td> <td class="divRightColumn divLabel">Reject Reason</td> <td class="divRightColumn divField divFieldWrap"></td> </tr><tr><td class="divLeftColumn divLabel">TRANSPORT</td> <td class="divLeftColumn divField divFieldWrap">TRANSPORT</td> <td class="divRightColumn divLabel">BS&W(%)</td> <td class="divRightColumn divField divFieldWrap">0.1</td> </tr><tr><td class="divLeftColumn divLabel">TRANSPORT</td> <td class="divLeftColumn divField divFieldWrap">TRANSPORT</td> <td class="divRightColumn divLabel">TRANSPORT</td> <td class="divRightColumn divField divFieldWrap">90.0</td> </tr><tr><td class="divLeftColumn divLabel">TRANSPORT</td> <td class="divLeftColumn divField divFieldWrap">0.0</td> <td class="divRightColumn divLabel">TRANSPORT</td> <td class="divRightColumn divField divFieldWrap">90.0</td> </tr><tr><td class="divLeftColumn divLabel">TRANSPORT</td> <td class="divLeftColumn divField divFieldWrap">0.01</td> <td class="divRightColumn divLabel">TRANSPORT</td> <td class="divRightColumn divField divFieldWrap">90.0</td> </tr><tr><td class="divLeftColumn divLabel">TRANSPORT</td> <td class="divLeftColumn divField divFieldWrap">0 ft 0 in 0 in <br></br>(0.0 in)</td> <td class="divRightColumn divLabel">TRANSPORT</td> <td class="divRightColumn divField divFieldWrap">53.0</td> </tr><tr><td class="divLeftColumn divLabel">TRANSPORT</td> <td class="divLeftColumn divField divFieldWrap">0 ft 0 in 0 in <br></br>(0.0 in)</td> <td class="divRightColumn divLabel">TRANSPORT</td> <td class="divRightColumn divField divFieldWrap">49.9</td> </tr><tr><td class="divLeftColumn divLabel">TRANSPORT</td> <td class="divLeftColumn divField divFieldWrap">194.0</td> <td class="divRightColumn divLabel">TRANSPORT</td> <td class="divRightColumn divField divFieldWrap">TRANSPORT</td> </tr><tr><td class="divLeftColumn divLabel">TRANSPORT</td> <td class="divLeftColumn divField divFieldWrap">190.53</td> <td class="divRightColumn divLabel">TRANSPORT</td> <td class="divRightColumn divField divFieldWrap">04/28/2000 22:39</td> </tr><tr><td class="divLeftColumn divLabel">TRANSPORT</td> <td class="divLeftColumn divField divFieldWrap">190.72</td> <td class="divRightColumn divLabel">TRANSPORT</td> <td class="divRightColumn divField divFieldWrap">108712121215</td> </tr><tr><td class="divLeftColumn divLabel">TRANSPORT</td> <td class="divLeftColumn divField divFieldWrap">0 ft 0 in 0 in <br></br>(0.0 in)</td> <td class="divRightColumn divLabel">TRANSPORT</td> <td class="divRightColumn divField divFieldWrap">04/28/2000 22:47</td> </tr> </table> </section>
<!-- DROPOFF INFORMATION -->
<section class="">
<div class="sectionHeader" width="100%">
<h3 style="font-size:10px;">TRANSPORT</h3>
</div>
<table width="100%">
<tr width="100%">
<td class="divLabel">TRANSPORT:</td>
<td class="divField" colspan="3"></td>
</tr>
<tr width="100%">
<td class="divLabel">TRANSPORT:</td>
<td class="divField" colspan="3"></td>
</tr>
<tr width="100%">
<td class="divLeftColumn divLabel">TRANSPORT:</td>
<td class="divLeftColumn divField"></td>
<td class="divRightColumn divLabel">Arrival Date & Time:</td>
<td class="divRightColumn divField"></td>
</tr>
<tr width="100%">
<td class="divLeftColumn divLabel">TRANSPORT #:</td>
<td class="divLeftColumn divField"></td>
<td class="divRightColumn divLabel">TRANSPORT:</td>
<td class="divRightColumn divField"></td>
</tr>
<tr width="100%">
<td class="divLeftColumn divLabel">Latitude:</td>
<td class="divLeftColumn divField"></td>
<td class="divRightColumn divLabel">Wait Time:</td>
<td class="divRightColumn divField"></td>
</tr>
<tr width="100%">
<td class="divLeftColumn divLabel">Longitude:</td>
<td class="divLeftColumn divField"></td>
<td class="divRightColumn divLabel">DropOff Date & Time:</td>
<td class="divRightColumn divField"></td>
</tr>
<tr width="100%">
<td class="divLabel">TRANSPORT</td>
<td class="divField" colspan="3">TRANSPORT</td>
</tr>
<tr width="100%">
<td class="divLabel">Wait Time Notes:</td>
<td class="divField" colspan="3"></td>
</tr>
<tr width="100%">
<td class="divLabel">Other Notes:</td>
<td class="divField" colspan="3"></td>
</tr>
</table>
</section> <section class="">
</section>
<!-- / DROPOFF INFORMATION -->
<section class="">
</section>
<!-- DRIVER PICKUP & DROPOFF -->
<section class="">
<div class="">
<table width="100%" style="border-collapse: collapse;">
<tr width="100%">
<td class="divLeftColumn divLabel divLabelBackGround">TRANSPORT</td>
<td class="divRightColumn divLabel divLabelBackGround">TRANSPORT</td>
</tr>
</table>
<table width="100%">
<tr width="100%">
<td class="divLeftColumn divLabel">TRANSPORT #:</td>
<td class="divLeftColumn divField">100</td>
<td class="divRightColumn divLabel">TRANSPORT #:</td>
<td class="divRightColumn divField"></td>
</tr>
<tr width="100%">
<td class="divLeftColumn divLabel">TRANSPORT #:</td>
<td class="divLeftColumn divField">1015</td>
<td class="divRightColumn divLabel">TRANSPORT #:</td>
<td class="divRightColumn divField"></td>
</tr>
<tr width="100%">
<td class="divLeftColumn divLabel">TRANSPORT:</td>
<td class="divLeftColumn divField">TRANSPORT</td>
<td class="divRightColumn divLabel">TRANSPORT:</td>
<td class="divRightColumn divField"></td>
</tr>
<tr width="100%">
<td class="divLeftColumn divLabel">TRANSPORT:</td>
<td class="divLeftColumn divField">102</td>
<td class="divRightColumn divLabel">TRANSPORT:</td>
<td class="divRightColumn divField"></td>
</tr>
</table>
</div>
</section>
<p>hola</p>
<table width="100%" style="border-collapse: collapse;">
<tr width="100%">
<td style="text-align:center;"><img src="T:/orgs/images/logo.png" alt="logo" width="74" height="20" style="width:74px; height:20px;" /></td>
</tr>
</table>
<span style= "page-break-after: always;"></span>
</div>
</body>
</html>
Это "main". Java "Я создал, чтобы вы могли запустить код. Это читает "test2.html" из "C: \ temp \" и генерирует PDF размером 4x11 дюймов.
String tempFolder ="C:\temp\";
String fileName="test2.html";
String pdfFileName = Utils.generateRandomString();
pdfFileName += ".pdf";
final int xInch = 4;
final int yInch = 11;
int urx = 72* xInch; // upper right x
int ury = 72* yInch; // upper right y
Rectangle rectangle=new Rectangle(urx, ury);
Document document = new Document(rectangle);
document.setMargins(10,10,10,10);
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(tempFolder + "/" + pdfFileName));
document.open();
XMLWorkerHelper.getInstance().parseXHtml(writer, document, new FileInputStream(tempFolder + "/" + fileName));
document.close();
Ребята, этот код ужасен, но не мой. Это ужасное программное обеспечение, которое купила моя компания, и теперь мне нужно исправить все дерьмо, внося как можно меньше изменений. Конечно, вся информация в html была изменена на фиктивную информацию, потому что я не могу опубликовать реальную информацию здесь, но этот код представляет проблему очень точно
Я никогда раньше не создавал PDF-файлы из кода. itextpdf - 5.5.13
.