728x90
반응형
HTML 태그를 입력 받아 PDF로 변환해주는 예제 입니다.
pd4ml_demo.jar 및 fonts.jar 라이브러리를 활용 하였습니다.
참고 : https://pd4ml.com/index.htm
public void pd4ml() throws Exception{
String editor = request.getParameter("editor");
String HtmlString = "";
editor = editor.replaceAll("<", "<");
editor = editor.replaceAll(">", ">");
editor = editor.replaceAll(""", "'");
editor = editor.replaceAll("·", "·");
HtmlString = "<html>" + "<body>"
+ "<font face=\"gulim\">"
+ editor
+ "</font></body>"
+ "</html>";
if(!pd4mlTEst(htmlText)) {
return;
};
}
public boolean pd4mlTEst(String HtmlString) throws InvalidParameterException, MalformedURLException, IOException {
int topValue = 10;
int leftValue = 20;
int rightValue = 10;
int bottomValue = 10;
int userSpaceWidth = 750;
String url = "";
String outputPath = "D:/fileTest/pd4ml.pdf";
File output = new File(outputPath);
FileOutputStream fos = new FileOutputStream(output);
PD4ML pd4ml = new PD4ML();
pd4ml.setHtmlWidth(userSpaceWidth); // set frame width of "virtual web browser"
// choose target paper format and "rotate" it to landscape orientation
pd4ml.setPageSize(PD4Constants.A4);
// define PDF page margins
pd4ml.setPageInsetsMM(new Insets(topValue, leftValue, bottomValue, rightValue));
// source HTML document also may have margins, could be suppressed this way
// (PD4ML *Pro* feature):
pd4ml.addStyle("BODY {margin: 0}", true);
pd4ml.useTTF("java:fonts", true); //이 코드를 넣어야 한글이 정상적으로 만들어짐
pd4ml.setDefaultTTFs("Times New Roman", "Arial", "Courier New"); // 한글 관련 Font설정
pd4ml.render(new StringReader(HtmlString), fos); //actual document conversion from URL to file
fos.close();
return false;
}
결과
728x90
반응형
'JAVA' 카테고리의 다른 글
아파치 POI RTF 번호매기기 (0) | 2021.11.24 |
---|---|
이클립스 블록 선택 모드(열 선택) (0) | 2021.11.08 |
pd4ml 라이브러리 License 적용 (0) | 2021.11.03 |
Tomcat-Hot Deploy설정 방법 톰캣 재실행 없이 Class 변경 (0) | 2021.07.16 |
apache-poi로 RTF파일 생성하기 (0) | 2021.06.28 |
댓글