내용 : URL을 누르면 PDF로 변환해야하는 jsp 페이지가 나타납니다. 지금은 Java 구성 요소에서 ITextPDF를 사용하여 jsp를 읽고 PDF로 작성합니다. ITextPDF를 사용하지 않고 노새 안에서 다른 프로세스가 있습니까? 이 브라우저를 작성에도 불구하고들어오는 JSP 페이지를 MULE에서 PDF로 변환하는 방법은 무엇입니까?
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import org.mule.api.MuleEventContext;
import org.mule.api.lifecycle.Callable;
import org.mule.api.transport.PropertyScope;
import com.itextpdf.text.Chunk;
import com.itextpdf.text.Document;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.PdfWriter;
public class PDFConversion implements Callable {
private final String USER_AGENT = "Mozilla/5.0";
StringBuffer response = new StringBuffer();
ByteArrayOutputStream bos;
byte[] result;
@Override
public Object onCall(MuleEventContext eventContext) throws Exception {
try {
String productid="";
String vertical="";
String postcode="";
String metertype="";
String includeSolar="";
productid=eventContext.getMessage().getInvocationProperty("productId");
vertical=eventContext.getMessage().getInvocationProperty("vertical");
postcode=eventContext.getMessage().getInvocationProperty("postcode");
metertype=eventContext.getMessage().getInvocationProperty("metertype");
includeSolar=eventContext.getMessage().getInvocationProperty("includeSolar");
String url = "http://191.111.0.111:****/PDFService/electricitypdf?productid="+productid+"&vertical="+vertical+"&postcode="+postcode+"&metertype="+"&includeSolar="+includeSolar;
System.out.println(" URL -Request-----"+url);
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// optional default is GET
con.setRequestMethod("GET");
// add request header
con.setRequestProperty("User-Agent", USER_AGENT);
int responseCode = con.getResponseCode();
System.out.println("\nSending 'GET' request to URL : " + url);
System.out.println("Response Code : " + responseCode);
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
bos = new ByteArrayOutputStream();
int next = in.read();
while (next > -1) {
bos.write(next);
next = in.read();
}
bos.flush();
/ByteArrayOutputStream buffer = new ByteArrayOutputStream(); byte[] bytes = IOUtils.toByteArray(in); while ((inputLine = in.readLine()) != null) { response.append(inputLine); }/ in.close();
} catch (Exception e) {
e.printStackTrace();
}
Document document = new Document(PageSize.LETTER, 0.75F, 0.75F, 0.75F, 0.75F);
document.setPageSize(PageSize.LETTER.rotate());
// PdfWriter.setPageEvent(new HeaderFooter(mmPDFDocument.right() -
// mmPDFDocument.left(), footer, path, headerType, unicodeFont));
PdfWriter.getInstance(document, bos);
document.open();
int numberpages=10;
for (int i = 1; i <= numberpages; i++)
{
document.add(new Chunk("Hello PDF Service - Page "+i));
document.newPage();
}
FileOutputStream fos= new FileOutputStream("energy.pdf");
fos.write(bos.toByteArray());
fos.close();
document.close();
return bos;
}
}
내가 PDF 파일이 작성되고 있음을 볼 수 있고 URL 명중 될 때 더 타입 (안 PDF)의 파일을 생성 PDF로 내용을 표시 할 수 없습니다. 어떤 도움을 주셔서 감사합니다!