2017-04-06 12 views
0

자바 용 aspose 단어로 html을 pdf 문서로 변환하려고합니다. (버전은 17.4.0입니다.)HTML에서 PDF로 변환 할 때 PageSize를 정의하십시오.

내 질문 : 어떻게 html로 페이지 크기와 페이지 여백을 설정할 수 있습니까?

documentation에서 섹션 (div 요소)의 너비, 높이 및 여백을 설정해야하는 것처럼 들립니다.

내 HTML은 다음과 같습니다

<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <title>Hello PDF</title> 
 
</head> 
 

 
<body> 
 
    <div class="page" style="width:210mm; height:297mm; margin-top:0cm; margin-bottom:1cm; margin-left:1cm; margin-right:1cm;"> 
 
     <p>Hello World</p> 
 
    </div> 
 
</body> 
 

 
</html>

내 자바 코드 :

String baseUri = "path/to/doc/"; 

LoadOptions loadOptions = new LoadOptions(); 
loadOptions.setEncoding(Charset.forName("UTF-8")); 
Document doc = new Document(baseUri + "test.html", loadOptions); 

OutputStream outputStream = new FileOutputStream(baseUri + "test.pdf"); 
doc.save(outputStream, SaveFormat.PDF); 

내 문제는 결과 PDF가 215,9 X의 페이지 크기를 가지고 있다는 것입니다 279.4mm (210 x 297mm 대신)이며 상단에서 여백도 0이 아닙니다.

아무도 내 HTML 에서이 값을 정의하는 방법을 말해 줄래?

답변

1

Aspose.Words는 MS Word와 동일한 동작을합니다. 페이지 설정이 HTML로 좋습니다. MS Word에서 입력 HTML을로드하고 PDF로 변환하면 215,9 x 279,4mm 페이지 크기의 문서도 생성됩니다.

그러나 다음과 같이 Aspose.Words API를 사용하여 요구 사항에 따라 섹션의 페이지 설정을 변경할 수 있습니다.

저는 Aspose의 Tilal 개발자 개발자입니다.

String baseUri = "path/to/doc/"; 

LoadOptions loadOptions = new LoadOptions(); 
loadOptions.setEncoding(Charset.forName("UTF-8")); 
com.aspose.words.Document doc = new com.aspose.words.Document(baseUri +"test.html", loadOptions); 

for (Section sectoin : doc.getSections()) 
{ 
     PageSetup ps = sectoin.getPageSetup(); 
     ps.setPaperSize(PaperSize.A4); 
     ps.setTopMargin(0.0); 
     ps.setBottomMargin(1.0); 
     ps.setLeftMargin(1.0); 
     ps.setRightMargin(1.0); 

} 

OutputStream outputStream = new FileOutputStream(baseUri +"Test.pdf"); 
doc.save(outputStream, com.aspose.words.SaveFormat.PDF); 
+0

답장을 보내 주셔서 감사합니다. 코드를 사용하면 문서가 올바르게 보입니다. 내 희망은, 내가 html에 필요한 모든 레이아웃 기능을 설정할 수 있다는 것입니다. –

+0

예, HTML에서 페이지 레이아웃 속성을 설정해도 HTML에서 PDF 로의 변환 결과에는 영향을 미치지 않습니다. –