如何从JSP页面生成PDF报告

huangapple go评论77阅读模式
英文:

How to generate a PDF report from JSP page

问题

抱歉,由于您要求只返回翻译好的部分,我将仅翻译您提供的代码片段。以下是您提供的代码的翻译:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>View JTC</title>

<link href="assets/css/bootstrap.min.css" rel="stylesheet"
	type="text/css" />
<link href="assets/css/style.css" rel="stylesheet" type="text/css" />
<% if (session.getAttribute("empid") == null) {
	response.sendRedirect("index.jsp?message=Session Expired!!");
}
session.setAttribute("cpage", "production");
%>
<jsp:include page="navigationMenu.jsp" />
</head>
<body>
<section class="container-fluid">

<table class="table table-bordered">
<!-- ... 表格内容 ... -->
&lt;/table&gt;

&lt;table class=&quot;table table-bordered&quot;&gt;
<!-- ... 表格内容 ... -->
&lt;/table&gt;

&lt;table class=&quot;table table-bordered&quot;&gt;
<!-- ... 表格内容 ... -->
&lt;/table&gt;

&lt;table class=&quot;table table-bordered&quot;&gt;
<!-- ... 表格内容 ... -->
&lt;/table&gt;

&lt;/section&gt;
&lt;/div&gt;
	&lt;script src=&quot;assets/jquery/customjs.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
	&lt;script src=&quot;assets/jquery/jquery-3.5.1.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
	&lt;script src=&quot;assets/jquery/popper.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
	&lt;script src=&quot;assets/jquery/bootstrap.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;

由于您提到您需要将此页面导出为横向页面,并将所有内容缩放到一页中,这涉及到生成 PDF 并设置页面的打印属性。在 Java 中,您可以使用一些库来实现这一目标,如 iTextFlying Saucer.

请注意,上述代码片段中涉及到了一些 JSP 和 HTML 代码,但是生成 PDF 并设置打印属性需要使用适当的 Java 代码,因此您需要将这些片段整合到 Java 代码中来实现您的目标。如需更详细的指导,请告知我需要提供哪些帮助。

英文:

I need to Generate PDF report in Java. Earlier when i use Cold Fusion it was easier to export html to PDF, is there any way to convert the html to pdf in JAVA.
I tried JSPDF javascript method to convert this page but that doesn't works.

&lt;%@ page language=&quot;java&quot; contentType=&quot;text/html; charset=ISO-8859-1&quot;
pageEncoding=&quot;ISO-8859-1&quot;%&gt;
&lt;%@ taglib prefix=&quot;c&quot; uri=&quot;http://java.sun.com/jsp/jstl/core&quot; %&gt;
&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta charset=&quot;ISO-8859-1&quot;&gt;
&lt;title&gt;View JTC&lt;/title&gt;
&lt;link href=&quot;assets/css/bootstrap.min.css&quot; rel=&quot;stylesheet&quot;
type=&quot;text/css&quot; /&gt;
&lt;link href=&quot;assets/css/style.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
&lt;%
if (session.getAttribute(&quot;empid&quot;) == null) {
response.sendRedirect(&quot;index.jsp?message=Session Expired!!&quot;);
}
session.setAttribute(&quot;cpage&quot;, &quot;production&quot;);
%&gt;
&lt;jsp:include page=&quot;navigationMenu.jsp&quot; /&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;section class=&quot;container-fluid&quot;&gt;
&lt;table class=&quot;table table-bordered&quot;&gt;
&lt;tr&gt;
&lt;th style=&quot;width:30%;vertical-align:middle;text-align:center;&quot;&gt;logo&lt;/th&gt;
&lt;th colspan=&quot;2&quot; style=&quot;text-align:center;width:70%&quot;&gt;Denholm Yam Contracting Comapany L.L.C&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th rowspan=&quot;2&quot; style=&quot;text-align:center;vertical-align:middle;&quot;&gt;Job Travel Card&lt;/th&gt;
&lt;th style=&quot;width:10%;&quot;&gt;JTC No:&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;Date&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;table class=&quot;table table-bordered&quot;&gt;
&lt;tr &gt;
&lt;td style=&quot;width:10%;text-align:left;&quot;&gt;Project Number&lt;/td&gt;
&lt;td style=&quot;width:15%;text-align:left;&quot; colspan=&quot;2&quot;&gt;&lt;/td&gt;
&lt;td style=&quot;width:10%;text-align:left;&quot;&gt;Unit No. / Tag No.&lt;/td&gt;
&lt;td style=&quot;width:15%;text-align:left;&quot; colspan=&quot;4&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Area Number&lt;/td&gt;
&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;
&lt;td&gt;Material Class&lt;/td&gt;
&lt;td colspan=&quot;4&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width:15%;text-align:left;&quot;&gt;Drawing No: / ISO Number&lt;/td&gt;
&lt;td style=&quot;width:15%;text-align:left;&quot;&gt;&lt;/td&gt;
&lt;td style=&quot;width:15%;text-align:left;&quot;&gt;JC No:&lt;/td&gt;
&lt;td style=&quot;width:15%;text-align:left;&quot;&gt;&lt;/td&gt;
&lt;td style=&quot;width:10%;text-align:left;&quot;&gt;Sheet No&lt;/td&gt;
&lt;td style=&quot;width:15%;text-align:left;&quot;&gt;&lt;/td&gt;
&lt;td style=&quot;width:10%;text-align:left;&quot;&gt;Rev. No.&lt;/td&gt;
&lt;td style=&quot;width:15%;text-align:left;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width:15%;text-align:left;&quot;&gt;Item Description&lt;/td&gt;
&lt;td style=&quot;width:15%;text-align:left;&quot; colspan=&quot;2&quot;&gt;&lt;/td&gt;
&lt;td style=&quot;width:15%;text-align:left;&quot;&gt;ITP Stage Nos.&lt;/td&gt;
&lt;td style=&quot;width:15%;text-align:left;&quot; colspan=&quot;4&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;!-- Fitup data --&gt;
&lt;table class=&quot;table table-bordered&quot;&gt;
&lt;tr&gt;
&lt;th  rowspan=&quot;12&quot;  style=&quot;text-align:center;vertical-align:middle;&quot;&gt;
&lt;span class=&quot;verticaltext&quot;&gt;
Fabrication Assembly Fit-Up
&lt;/span&gt;
&lt;/th&gt;
&lt;th style=&quot;text-align:center;vertical-align:middle;&quot; rowspan=&quot;2&quot;&gt;Weld/joint No&lt;/th&gt;
&lt;th style=&quot;text-align:center;vertical-align:middle;&quot; rowspan=&quot;2&quot;&gt;Item/Position No.&lt;/th&gt;
&lt;th colspan=&quot;2&quot;&gt;Material Spec Grade&lt;/th&gt;
&lt;th style=&quot;text-align:center;vertical-align:middle;&quot; rowspan=&quot;2&quot;&gt;Size&lt;/th&gt;
&lt;th style=&quot;text-align:center;vertical-align:middle;&quot; rowspan=&quot;2&quot;&gt;Thickness&lt;/th&gt;
&lt;th colspan=&quot;2&quot;&gt;Heat/Plate/TestNo&lt;/th&gt;
&lt;th style=&quot;text-align:center;vertical-align:middle;&quot; rowspan=&quot;2&quot;&gt;Welder No. for tracking&lt;/th&gt;
&lt;th colspan=&quot;2&quot;&gt;Fitup Result&lt;/th&gt;
&lt;th style=&quot;text-align:center;vertical-align:middle;&quot; rowspan=&quot;2&quot;&gt;Date&lt;/th&gt;
&lt;th style=&quot;text-align:center;vertical-align:middle;&quot; rowspan=&quot;2&quot; &gt;Sign&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;Material 1&lt;/th&gt;
&lt;th&gt;Material 2&lt;/th&gt;
&lt;th&gt;Material 1&lt;/th&gt;
&lt;th&gt;Material 2&lt;/th&gt;
&lt;th&gt;Accept&lt;/th&gt;
&lt;th&gt;Reject&lt;/th&gt;
&lt;/tr&gt;
&lt;c:forEach begin=&quot;1&quot; var=&quot;xx&quot; end=&quot;10&quot;&gt;
&lt;tr&gt;
&lt;c:if test=&quot;${xx==1}&quot;&gt;
&lt;/c:if&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/c:forEach&gt;
&lt;tr&gt;
&lt;td colspan=&quot;4&quot;&gt;Name &amp; Signature of fabrication foreman&lt;/td&gt;
&lt;td colspan=&quot;3&quot;&gt;Released to&lt;/td&gt;
&lt;td colspan=&quot;2&quot;&gt;
&lt;input type=&quot;checkbox&quot;&gt;
QC/NDE/DIM.
&lt;/td&gt;
&lt;td colspan=&quot;1&quot;&gt;
&lt;input type=&quot;checkbox&quot;&gt;
Welding
&lt;/td&gt;
&lt;td colspan=&quot;4&quot;&gt;
&lt;input type=&quot;checkbox&quot;&gt;
Fabrication/Assembly
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan=&quot;7&quot;&gt;Date&lt;/td&gt;
&lt;td colspan=&quot;7&quot;&gt;Date&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;!-- welding data --&gt;
&lt;table class=&quot;table table-bordered&quot;&gt;
&lt;tr&gt;
&lt;th  rowspan=&quot;13&quot;  style=&quot;text-align:center;vertical-align:middle;&quot;&gt;
&lt;span class=&quot;verticaltext&quot;&gt;
Welding Details
&lt;/span&gt;
&lt;/th&gt;
&lt;th style=&quot;text-align:center;vertical-align:middle;&quot; rowspan=&quot;3&quot;&gt;Joint No&lt;/th&gt;
&lt;th style=&quot;text-align:center;vertical-align:middle;&quot; rowspan=&quot;3&quot;&gt;WPS No.&lt;/th&gt;
&lt;th colspan=&quot;3&quot; class=&quot;text-center&quot;&gt;Welding Process&lt;/th&gt;
&lt;th colspan=&quot;3&quot; class=&quot;text-center&quot;&gt;Welder/Operation No.&lt;/th&gt;
&lt;th colspan=&quot;2&quot; rowspan=&quot;2&quot; class=&quot;text-center&quot; &gt;Visual Inspection&lt;/th&gt;
&lt;th style=&quot;text-align:center;vertical-align:middle;&quot; rowspan=&quot;3&quot;&gt;Date&lt;/th&gt;
&lt;th style=&quot;text-align:center;vertical-align:middle;&quot; rowspan=&quot;3&quot; &gt;Sign&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th colspan=&quot;3&quot; class=&quot;text-center&quot;&gt;Passes&lt;/th&gt;
&lt;th colspan=&quot;3&quot; class=&quot;text-center&quot;&gt;Passes&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th class=&quot;text-center&quot;&gt;Root/Hot&lt;/th&gt;
&lt;th class=&quot;text-center&quot;&gt;Fill&lt;/th&gt;
&lt;th class=&quot;text-center&quot;&gt;Cap&lt;/th&gt;
&lt;th class=&quot;text-center&quot;&gt;Root/Hot&lt;/th&gt;
&lt;th class=&quot;text-center&quot;&gt;Fill&lt;/th&gt;
&lt;th class=&quot;text-center&quot;&gt;Cap&lt;/th&gt;
&lt;th class=&quot;text-center&quot;&gt;Accept&lt;/th&gt;
&lt;th class=&quot;text-center&quot;&gt;Reject&lt;/th&gt;
&lt;/tr&gt;
&lt;c:forEach begin=&quot;1&quot; var=&quot;xx&quot; end=&quot;10&quot;&gt;
&lt;tr&gt;
&lt;c:if test=&quot;${xx==1}&quot;&gt;
&lt;/c:if&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/c:forEach&gt;
&lt;tr&gt;
&lt;td colspan=&quot;4&quot;&gt;Name &amp; Signature of fabrication foreman&lt;/td&gt;
&lt;td colspan=&quot;3&quot;&gt;Released to&lt;/td&gt;
&lt;td colspan=&quot;2&quot;&gt;
&lt;input type=&quot;checkbox&quot;&gt;
QC/NDE/DIM.
&lt;/td&gt;
&lt;td colspan=&quot;1&quot;&gt;
&lt;input type=&quot;checkbox&quot;&gt;
Welding
&lt;/td&gt;
&lt;td colspan=&quot;4&quot;&gt;
&lt;input type=&quot;checkbox&quot;&gt;
Fabrication/Assembly
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan=&quot;14&quot;&gt;Name &amp; Signature of QC Personel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan=&quot;7&quot;&gt;Date&lt;/td&gt;
&lt;td colspan=&quot;7&quot;&gt;Date&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/section&gt;
&lt;/div&gt;
&lt;script src=&quot;assets/jquery/customjs.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;assets/jquery/jquery-3.5.1.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;assets/jquery/popper.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;assets/jquery/bootstrap.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;

I need to export this page in landscape and all this content scaled into one page. Is there any way? Thank you in advance.

答案1

得分: 1

你可以使用Flyingsaucer

> Flying Saucer是一个纯Java库,用于使用CSS 2.1进行布局和格式化来渲染任意格式良好的XML(或XHTML),输出到Swing面板、PDF和图像。

英文:

You can use Flyingsaucer.

> Flying Saucer is a pure-Java library for rendering arbitrary
> well-formed XML (or XHTML) using CSS 2.1 for layout and formatting,
> output to Swing panels, PDF, and images.

huangapple
  • 本文由 发表于 2020年8月26日 19:09:35
  • 转载请务必保留本文链接:https://go.coder-hub.com/63596346.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定