2013-10-31 8 views
9

मैं HTML सामग्री से पीडीएफ बनाने की कोशिश कर रहा हूं।पीडीएफबॉक्स का उपयोग कर एचटीएमएल से पीडीएफ फाइल कैसे बनाएं?

public byte[] generatePdf(final XhtmlPDFGenerationRequest request) { 

    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    PDDocument document = new PDDocument(); 
    InputStream stream = new ByteArrayInputStream(request.getContent() 
      .getBytes()); 

    PDStream pdstream = new PDStream(document, stream); 
    document.save(baos); 
    document.close(); 
    return this.toByteArray(baos); 

} 

जब मैं इस byte[] लेने के लिए और एक फाइल करने के लिए बचाने के लिए, फ़ाइल खाली है। मैं PDStream उपयोग कर रहा हूँ दस्तावेज़

में इनपुट धारा एम्बेड करने के लिए http://pdfbox.apache.org/apidocs/

public PDStream(PDDocument doc, 
       InputStream str) 
     throws IOException 

से इनपुट धारा से सभी डेटा पढ़ता है और दस्तावेज़ में एम्बेड करता है, इस InputStream बंद हो जाएगा।

उत्तर

12

मैं पीडीएफ रेंडरर के लिए एक HTML की तलाश में था। हम iText का उपयोग कर रहे थे। मैं अपाचे पीडीएफबॉक्स के साथ ऐसा करने के लिए देख रहा था। लेकिन, ऐसा लगता है कि यह नहीं किया जा सकता है।

मैं या तो Apache FOP का उपयोग कर या iText का उपयोग जारी रख सकता हूं।

यहाँ iText समाधान अगर कोई रुचि है: Java Render XML Document as PDF

आप पीडीएफ बॉक्स का उपयोग मर्ज करने के लिए देख रहे हैं एक समाधान के लिए, यहाँ यह Merge pdf files using Apapche pdf box

+3

मैं iText के लिए एक विकल्प के लिए देख रहा हूँ है, इसके लाइसेंसिंग नियम बंद स्रोत परियोजनाओं के साथ अच्छी तरह से काम नहीं करते हैं – Hoffmann

+0

@ हॉफमैन उपरोक्त लिंक में अपाचे पीडीएफ समाधान आपके लिए काम नहीं करता है? – vsingh

+1

अपाचे पीडीएफबॉक्स पीडीएफ रूपांतरण में एचटीएमएल का समर्थन नहीं करता है। हाल ही में जावा पीडीएफ पुस्तकालयों के बारे में स्लैशडॉट पर एक चर्चा हुई, मुझे फ्लाइंग सॉसर के बारे में पता चला, जो आईजीएक्स्ट वी 2 का उपयोग करता है जो एलजीपीएल है, मैंने अभी तक इसका परीक्षण नहीं किया है, लेकिन मैं यहां भविष्य के संदर्भ के लिए चर्चा छोड़ दूंगा: http: // ask .slashdot.org/comments.pl? sid = 5505091 & CID = 47625223 – Hoffmann

संबंधित मुद्दे