gpt4 book ai didi

java - 在使用 itext 进行 pdf 转换时遇到问题

转载 作者:行者123 更新时间:2023-11-30 09:30:54 25 4
gpt4 key购买 nike

这是我用于生成 PDF 的 Java 类。我正在使用 iText 生成 PDF。

public class pdfgen {
public void createPdf(String inputFile, String outputFile, boolean isPictureFile)

{
Rectangle pageSize = new Rectangle(2780, 2525);
Document pdfDoc = new Document(pageSize);
String pdfFilePath = outputFile;
try {
FileOutputStream fileOutputStream = new FileOutputStream(pdfFilePath);
PdfWriter writer = null;
writer = PdfWriter.getInstance(pdfDoc, fileOutputStream);
writer.open();
pdfDoc.open();
if (isPictureFile){
pdfDoc.add(com.itextpdf.text.Image.getInstance(inputFile));
}
else{
URL url=new URL(inputFile);
URLConnection conn = url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line; while ((line = in.readLine()) !=null ) {
System.out.println(line);
}
System.out.println(inputFile);
in.close();
File file = new File(inputFile);
pdfDoc.add(new Paragraph(org.apache.commons.io.FileUtils.readFileToString(file)));

}
pdfDoc.close();
writer.close();
}catch(DocumentException e){
System.err.println("The error has occured in the document");
}catch(FileNotFoundException e){
System.err.println("Your file is not found.");
}
catch(Exception e){
System.err.println("Exception: "+e);
}
}

}

这是我调用上述类的 JSP 文件

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page import="java.util.Vector" %>
<%@page import="com.dalkin.pdfgen" %>
<% Vector result=(Vector)request.getAttribute("val");%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Output </title>
</head>
<body>

<%Vector names; %>
<%if(arrcol.size()!=0){ %>
<div style="width:1024px;">
<table cellpadding="5" cellspacing="5">

<tr>

<td>
<%for(int q=0;q<result.size();q+=3){ %>
<div style="background:url(sample.gif) no-repeat; height:320px; width:500px; float:left;">
<input type="text" size="50" value=<%=result.get(q) %>>
<input type="text" size="50" value= <%=result.get((q+1))%>>
<input type="text" size="50" value=<%=result.get((q+2))%>>
</div>

<%}} %>
</td>
</tr>

</table>
</div>

<%pdfgen pf = new pdfgen();
pf.createPdf("http://localhost:8080/New/FirstServlet","D:\\first.pdf",false);%>

</body>
</html>

当我运行程序时,我得到 FileNotFoundException
“http://localhost:8080/New/FirstServlet”
找不到您的文件。
任何人都可以帮助我哪里做错了吗?

最佳答案

你这样调用你的PDF创建方法

pf.createPdf("http://localhost:8080/New/FirstServlet","D:\\first.pdf",false);

在该方法中,您使用第一个参数(名为 inputFile),如下所示:

File file = new File(inputFile);

"http://localhost:8080/New/FirstServlet"不是文件,所以

FileUtils.readFileToString(file)

注定会失败,除非你得到异常。

在你做之前的代码中

URL url=new URL(inputFile);
URLConnection conn = url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));

然后使用 line = in.readLine() 遍历这些行。除了打印这些行,您还可以将这些行附加到某些 StringBuilder 并使用内置的 String

pdfDoc.add(new  Paragraph(...));

关于java - 在使用 itext 进行 pdf 转换时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13080859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com