gpt4 book ai didi

java - 如何使用 Servlet 发送 PDF 文件数据作为响应?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:58:53 25 4
gpt4 key购买 nike

我的要求是使用 HTTP Servlet 将 PDF 数据响应到移动客户端(iPhone)。

我按照以下方式做了,但我没有在客户端获得预期的输出。

    PrintWriter out = response.getWriter();

String aInputFileName = "/Users/hcl/Desktop/Easwar/sample.pdf";
log("Reading in binary file named : " + aInputFileName);
File file = new File(aInputFileName);
log("File size: " + file.length());
byte[] result = new byte[(int)file.length()];
System.out.println("Length : "+ result.length);
try {
InputStream input = null;
try {
int totalBytesRead = 0;
input = new BufferedInputStream(new FileInputStream(file));
while(totalBytesRead < result.length){
int bytesRemaining = result.length - totalBytesRead;
//input.read() returns -1, 0, or more :
int bytesRead = input.read(result, totalBytesRead, bytesRemaining);
if (bytesRead > 0){
totalBytesRead = totalBytesRead + bytesRead;
}
}
response.setHeader("Content-Type", "application/pdf");

out.println(result);

我的方法对吗?请指教。

谢谢。

最佳答案

package com.javatpoint;

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.darwinsys.spdf.PDF;
import com.darwinsys.spdf.Page;
import com.darwinsys.spdf.Text;
import com.darwinsys.spdf.MoveTo;

public class ServletPDF extends HttpServlet {

@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException {

PrintWriter out = response.getWriter();
response.setContentType("application/pdf");

response.setHeader("Content-disposition","inline; filename='javatpoint.pdf'");

PDF p = new PDF(out);
Page p1 = new Page(p);
p1.add(new MoveTo(p, 200, 700));
p1.add(new Text(p, "www.javatpoint.com"));
p1.add(new Text(p, "by Sonoo Jaiswal"));

p.add(p1);
p.setAuthor("Ian F. Darwin");

p.writePDF();
}
}

关于java - 如何使用 Servlet 发送 PDF 文件数据作为响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16977274/

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