2011-01-17 9 views
4

strong과 같은 서식 지정 태그, 이미지 등의 HTML 콘텐츠가 있습니다. 자바 코드에서 HTML 서식을 잃지 않고이 HTML 콘텐츠를 PDF 문서로 변환하고 싶습니다.자바 - 서식을 잃지 않고 HTML 콘텐츠를 PDF로 변환하는 방법은 무엇입니까?

어쨌든 (iText 또는 다른 라이브러리를 사용하여) Java로 수행 할 수 있습니까?

+1

가능한 중복 PDF로] (http://stackoverflow.com/questions/235851/using-itext-to-convert-html-to-pdf) – dogbane

답변

0

나는 DocRaptor.com을 시도 할 것입니다. 그것은 html로 pdf 또는 html로 어떤 언어든지에있는 xls에 개조하고, (당신이 비싼 면허 요금을 지불하는없이) 프린스 XML를 사용하기 때문에, 질은 거기 밖으로 다른 선택권보다는 훨씬 낫다. 또한 웹 앱이기 때문에 다운로드 할 필요가 없습니다. 오랜 시간이 걸리는 쉬운 코딩.

다음은 몇 가지 예입니다 : https://docraptor.com/documentation#coding_examples

0

HTML을 PDF로 변환하는 것은 일반적으로 정확하지는 않지만 HTML로 들어가는 것을 제어하는 ​​경우 Apache FOP과 같은 XSL-FO 구현을 사용해 볼 수 있습니다.

변환 규칙을 정의하는 스타일 시트를 작성하거나 찾아야하므로 기본 스타일이 아니지만 위쪽에 출력 형식을 훨씬 더 많이 제어 할 수있어 매우 유용합니다 화면에서보기에 좋아 보이는 것이 반드시 종이에서 잘 보이지는 않습니다.

+0

FO에 대한 끔찍한 이야기를 들었습니다. P;)하지만 XSL은 사람들을 어쨌든 겁나게합니다. – Jules

+1

FOP는 좋지 않습니다 (올해의 삼가면서 말하지만). 그러나 그것을 모두 사용하고자하는 것에 달려 있습니다. 사용자가 다운로드 할 수있는 간단한 1-2 페이지 문서 일 경우 FOP는 괜찮습니다. 인쇄 품질을 내고 싶다면 XEP 라이센스를 구입하는 것이 좋습니다. – biziclop

4

은 내가 Flying Saucer 프로젝트에서 ITextRenderer을 사용했다.

여기에 짧고 독립적 인 작동 예제가 있습니다. 필자는 나중에 바이트를 전자 메일 첨부 파일로 스트리밍하려고했습니다.

그래서이 예제에서는 필자가이 질문에 대한 설명을 위해 파일에 씁니다. 이

import com.lowagie.text.DocumentException; 
import org.apache.commons.io.FileUtils; 
import org.xhtmlrenderer.pdf.ITextRenderer; 

import java.io.ByteArrayOutputStream; 
import java.io.File; 
import java.io.IOException; 

public class So4712641 { 

    public static void main(String... args) throws DocumentException, IOException { 
    FileUtils.writeByteArrayToFile(new File("So4712641.pdf"), toPdf("<b>You gotta walk and don't look back</b>")); 
    } 

    /** 
    * Generate a PDF document 
    * @param html HTML as a string 
    * @return bytes of PDF document 
    */ 
    private static byte[] toPdf(String html) throws DocumentException, IOException { 
    final ITextRenderer renderer = new ITextRenderer(); 
    renderer.setDocumentFromString(html); 
    renderer.layout(); 
    try (ByteArrayOutputStream fos = new ByteArrayOutputStream(html.length())) { 
     renderer.createPDF(fos); 
     return fos.toByteArray(); 
    } 
    } 
} 

이 여기에, 완전성에 대한

enter image description here

나에게주는 내 메이븐에 대한 관련 부분입니다 자바 8입니다 pom.xml

<dependencies> 
    <dependency> 
     <groupId>org.xhtmlrenderer</groupId> 
     <artifactId>flying-saucer-pdf</artifactId> 
     <version>9.0.8</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-io</groupId> 
     <artifactId>commons-io</artifactId> 
     <version>2.4</version> 
    </dependency> 
</dependencies> 
[HTML로 변환하여 itext 사용의
+1

당신은 내 하루를 구했습니다! 당신의 기여에 감사드립니다!! :) – shirkkan

관련 문제