2014-04-16 3 views
0

타사 HTML의 PDF 버전을 생성하려고합니다 (실제로는 HTM 파일입니다). 이 HTML은 앞으로 변경 될 수 있으며 절대적으로 제어 할 수 없습니다. 내가하고 싶은 것은 PDF로 변환하는 것뿐입니다.자바에서 타사 HTML에서 PDF를 생성

이미 iText (XmlWorker 포함)와 Flying-Saucer를 시도했지만 아직까지는 성공하지 못했습니다.

제 문제는 HTML 파일이 기본 패턴을 벗어났습니다. 예 :

<link rel=File-List href="040602_inds_files/filelist.xml"> 

    <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> 

첫 번째는 더 가까운 태그가 없습니다 (iText를 충돌)와 두 번째는 'HTTP-당량의 가치에는 큰 따옴표가 없습니다 (플라잉 - 접시가 충돌).

이 문제에 대한 많은 게시물을 발견했지만 모두 자신의 HTML을 처리하고 있으므로 문제를 해결하고 다시 시도 할 수 있습니다. 그러나 나는 이것을 할 수 없다.

This은 변환하려고하는 페이지입니다. 여기

내 iText를이 방법으로 변환된다

 public static void convertFS(String siteUrl, String fileName) throws com.lowagie.text.DocumentException, IOException { 
      OutputStream os = new FileOutputStream(fileName); 
      ITextRenderer renderer = new ITextRenderer(); 
      renderer.setDocument(siteUrl); 
      renderer.layout(); 
      renderer.createPDF(os); 

      os.close(); 
     } 

모든 팁 : 여기

 public static void convert(PdfWriter writer, Document document, String siteUrl) throws MalformedURLException, IOException { 
      XMLWorkerHelper.getInstance().parseXHtml(writer, document, 
        new BufferedReader(new InputStreamReader(new URL(siteUrl).openStream()))); 
     } 

그리고 내 비행 - 접시는 방법을 변환합니까? 나는 그들이 쓸모 있다면 다른 libs 받아들입니다. 미리 Thx.

+0

먼저 HTML 코드를 정상화 할 수 iText를 PDF 파일로 생성하는 데 사용할 수 있습니다 - 형식의 HTML 코드 (예 : jsoup), 모든 태그가있는 임시 위치에 쓰기, 잘 구성된 다음 iText로 임시 위치에서 PDF 변환을 수행합니다. – PeterMmm

답변

0

먼저 jsoup에 의해 HTML 파일을 구문 분석하고 표준 HTML 파일에 내용을 변환 할 수 있습니다, 결국 당신도 나쁜 동의하는 lib 디렉토리로 읽어 Propably

+0

대문자를 사용하십시오. 텍스트가 훨씬 더 돋보입니다. –

+1

나를 상기시키기위한 Thyx – micmiu

+0

나는 완전한 일까지 더 많은 문제를 가지고 있었지만, jsoup는 이것을 정말로 해결했습니다. BTW, 나는 Flying-Saucer를 선택한다. 고마워. – Sabaum

관련 문제