2012-05-08 21 views
9

Web siteme CSV veya PDF gibi bazı dışa aktarma işlevleri sunmam gerekiyor. HTML sayfaları HTML formatına dönüştürmek için Java için güçlü ve ücretsiz bir araç var mı?html sayfası pdf formatına nasıl aktarılır?

+1

Olası yinelenen: Geç cevap için http://stackoverflow.com/questions/633780/converting-html-files-to-pdf – David

cevap

27

.
Aşağıdaki örnekler, bir ölçüde XHTML'nin PDF'ye dönüştürülmesine yardımcı olur. Uçan daire API kullanma

Örnekler:

  • çekirdek renderer.jar
  • iText-2.0.8.jar

Bu bulabilirsiniz: Aşağıdaki kütüphaneleri gerektirir
kaynakları flyingsaucer-R8.zip.

Örnek 1:

// if you have html source in hand, use it to generate document object 
Document document = XMLResource.load(new ByteArrayInputStream(yourXhtmlContentAsString.getBytes())).getDocument(); 

ITextRenderer renderer = new ITextRenderer(); 
renderer.setDocument(document, null); 

renderer.layout(); 

String fileNameWithPath = outputFileFolder + "PDF-XhtmlRendered.pdf"; 
FileOutputStream fos = new FileOutputStream(fileNameWithPath); 
renderer.createPDF(fos); 
fos.close(); 
System.out.println("File 1: '" + fileNameWithPath + "' created."); 

Örnek2: XML Kaynak kullanma XHTML doğrudan girişini kullanma Belge:

ITextRenderer renderer = new ITextRenderer(); 

// if you have html source in hand, use it to generate document object 
renderer.setDocumentFromString(yourXhtmlContentAsString); 
renderer.layout(); 

String fileNameWithPath = outputFileFolder + "PDF-FromHtmlString.pdf"; 
FileOutputStream fos = new FileOutputStream(fileNameWithPath); 
renderer.createPDF(fos); 
fos.close(); 

System.out.println("File 2: '" + fileNameWithPath + "' created."); 

Örnekler iText API kullanma:
Aşağıdaki kütüphaneleri gerektirir :

  • çekirdek renderer.jar Sen here de bu kaynakları bulabilirsiniz

  • itextpdf-5.2.1.jar.

    Example3: HTML Worker kullanma:

    com.itextpdf.text.Document document = 
         new com.itextpdf.text.Document(com.itextpdf.text.PageSize.A4); 
    String fileNameWithPath = outputFileFolder + "PDF-HtmlWorkerParsed.pdf"; 
    FileOutputStream fos = new FileOutputStream(fileNameWithPath); 
    com.itextpdf.text.pdf.PdfWriter pdfWriter = 
         com.itextpdf.text.pdf.PdfWriter.getInstance(document, fos); 
    
    document.open(); 
    
    //********************************************************** 
    // if required, you can add document meta data 
    document.addAuthor("Ravinder"); 
    //document.addCreator(creator); 
    document.addSubject("HtmlWoker Parsed Pdf from iText"); 
    document.addCreationDate(); 
    document.addTitle("HtmlWoker Parsed Pdf from iText"); 
    //**********************************************************/ 
    
    com.itextpdf.text.html.simpleparser.HTMLWorker htmlWorker = 
         new com.itextpdf.text.html.simpleparser.HTMLWorker(document); 
    htmlWorker.parse(new StringReader(sb.toString())); 
    
    document.close(); 
    fos.close(); 
    
    System.out.println("File 3: '" + fileNameWithPath + "' created."); 
    
  • +0

    üzgün .. ... htmlWorker.parse (yeni StringReader (sb.toString())); JSP çıktısı alıyorum ... bunu HTML'ye nasıl dönüştürebilirim. Sanırım sb XHTML/HTML içeriğidir. Bu doğru mu? – Harry

    +0

    Arapça harfleri kodunuzda görüntülenemez. Bir yolu var mı ? – user4757345

    +0

    @ user4757345: "html" içerik türünün "text/html; charset = utf-8" şeklinde ayarlandığını gördünüz mü? Temel olarak HTML yönergesidir, böylelikle çözümleyici PDF sayfasını oluştururken aynı şeyi anlar ve kullanır. –

    İlgili konular