2009-03-05 9 views
16

साथ पीडीएफ के लिए चित्र वहाँ फ्लाइंग सॉसर/पंछी के साथ विभिन्न पेज शैलियों स्थापित करने के लिए कोई तरीका है? मुझे लैंडस्केप में पहले कुछ पेजों की आवश्यकता है, फिर किसी निश्चित पृष्ठ पर और बाहर पोर्ट्रेट पर स्विच करें।दोनों परिदृश्य और फ्लाइंग सॉसर/पंछी

कोई विचार?

उत्तर

21

कोई बात नहीं, इस सवाल का जवाब मिल गया। किसी भी दिलचस्पी के लिए, यह है कि आप इसे कैसे करते हैं:

@page land { size:landscape; } 
@page port { size:portrait; } 
.landscapePage { page:land; } 
.portraitPage { page:port; } 

voilá!

12

किसी को अब भी समस्या डेरेक उल्लेख के साथ फंस के लिए, मैंने पाया कि मैं स्पष्ट रूप से तत्व कि अपने लेआउट स्विचिंग है पर एक चौड़ाई निर्धारित करने की आवश्यकता है। उदाहरण div साथ तो

<div class="portraitPage"> 
    <p>Some page content in portrait</p> 
</div> 
<div class="landscapePage"> 
    <p>Some page content in landscape</p> 
</div> 

इसे सही ढंग से एक परिदृश्य पेज के बाद एक चित्र पेज को फ़ॉर्मेट जाएगा, लेकिन परिदृश्य पेज में सामग्री केवल चित्र पृष्ठ के रूप में के रूप में व्यापक हो जाएगा, भले ही @page भूमि घोषणा एक चौड़ाई है। क्या मैं जरूरत div लागू किया प्रासंगिक वर्ग है पर सीधे चौड़ाई सेट करने के था, इसलिए घोषणा अधिक

की तरह कुछ
.landscapePage { page:land; width: 29.7cm; } 

सावधान रहें कि हालांकि चौड़ाई खाते में किसी भी मार्जिन या पैडिंग के माध्यम से लागू किया ले जाना चाहिए @ पेज घोषणा ब्लॉक।

0

आप रन टाइम पर गतिशील रूप से अपने पृष्ठ आकार संभाल कर सकते हैं। कृपया निम्नलिखित कदम

  1. पृष्ठ प्रकार जैसे परिदृश्य या पृष्ठ प्रकार परम में चित्र के लिए अतिरिक्त पैरामीटर जोड़ें पालन
  2. जोड़ें निम्नलिखित अपनी शैली टैग जब आप उदाहरण के लिए सर्वर साइड पर अपने html पैदा कर रहे हैं में कोड
FileOutputStream fos = new FileOutputStream(file); 
ITextRenderer renderer = new ITextRenderer(); 
StringBuilder htmls = new StringBuilder(); 
htmls.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); 
htmls.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">"); 
htmls.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">"); 
htmls.append("<head><style type=\"text/css\">"); 
htmls.append("@page{ size: "+request.getParameter("pageType")}"); 
htmls.append("</style></head>"); 
htmls.append("<body><div>dynamic pdf data</div></body></html>"); 
renderer.getFontResolver().addFont("C:\\Windows\\Fonts\\Calibri.ttf","UTF-8",BaseFont.NOT_EMBEDDED); 
renderer.setDocumentFromString(htmls.toString()); 
renderer.layout(); 
response.setContentType("application/octet-stream"); 
response.setHeader("Content-Disposition", "attachment;filename=\"" + fileName + ".pdf\""); 
renderer.createPDF(outputStream); 
renderer.createPDF(fos); 
संबंधित मुद्दे