2010-03-04 11 views
8

का उपयोग करते हुए एचटीएमएल को पीडीएफ में परिवर्तित करते समय अतिरिक्त खाली पृष्ठ <div class="page"> द्वारा निहित प्रत्येक प्रिंट पेज के साथ मेरे पास एक HTML रिपोर्ट है। पेज वर्ग के रूप मेंएबीसीपीडीएफ

width: 180mm; 
height: 250mm; 
page-break-after: always; 
background-position: centre top; 
background-image: url(Images/MainBanner.png); 
background-repeat: no-repeat; 
padding-top: 30mm; 

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

उत्तर

7

मुझे एक ही सटीक समस्या का अनुभव हुआ है। खाली पृष्ठ पृष्ठ-ब्रेक-बाद के कारण है: हमेशा; सीएसएस में। सिर्फ एबीसीपीडीएफ नहीं बल्कि मुद्रित भी एक अतिरिक्त पृष्ठ थूक जाएगा। इसलिए मैंने अंतिम पृष्ठ को समाप्त करने के लिए निम्न कोड का उपयोग किया: MyDoc.Delete (MyDoc.Page);

हालांकि यह एक अलग तरह की समस्या का कारण बनता है। विकास सर्वर पर, जिसमें आईई 8 है, मुझे एक अतिरिक्त खाली पृष्ठ मिलता है और उत्पादन पर जहां मेरे पास आईई 6 है, मुझे कोई अतिरिक्त खाली पृष्ठ नहीं मिलता है। तो मैंने एक खाली पृष्ठ देखने के लिए मुझे रास्ता दिखाने के लिए websupergoo पर समर्थन टीम को ईमेल किया है। विचार एक पीडीएफ के माध्यम से पुनरावृत्त करना है और सभी रिक्त पृष्ठों की पहचान करना और उपरोक्त तर्क का उपयोग करके उन्हें हटा देना है।

और मैं दूसरा Jakkwylde की राय। Websupergoo लोग जवाब देने में बेहद सहायक और तत्काल हैं। मुझे एबीसीपीडीएफ को 64 बिट के तहत काम करने में एक और समस्या थी और इसे लगभग एक दिन बिताए जाने की कोशिश कर रहा था। उन्होंने मुझे कई परिदृश्य प्रदान किए जिन्हें मैं कोशिश कर सकता था। उनका समर्थन पैसे पर सही था और मुझे अपना ऐप मिला और मिनटों में चल रहा था।

+0

विभिन्न वातावरण पर विभिन्न आईई संस्करण के साथ एक ही समस्या थी। मैं एक ही दृष्टिकोण का पालन करता हूं और इसने अब तक मेरे लिए अच्छा काम किया है। –

+0

खाली पृष्ठों को हटाने के लिए नीचे दिए गए कोड की तलाश करें। –

1

मुझे एबीसीपीडीएफ अजीब और अप्रत्याशित होने के लिए मिला है। ऐसा कहा जा रहा है कि, क्या हो रहा है कि पेज आकार और पृष्ठ-ब्रेक-बाद का संयोजन अपराधी हो सकता है। अपने पेज की ऊंचाई कम करें और/या पेज ब्रेक को हटा दें।

2

यदि आप AddImageUrl विधि का उपयोग कर रहे हैं तो पुनरीक्षण की एक चीज़ आपके HTML मार्कअप की वैधता है। उदाहरण जहां rendered पीडीएफ अपेक्षित नहीं है, खराब मार्कअप, बस्टेड टैग इत्यादि के परिणामस्वरूप

इसके लायक होने के लिए, वेबसुपरगू का उत्कृष्ट समर्थन है और जब आप विसंगतियों का सामना करते हैं तो बहुत अच्छा जवाब देते हैं। अक्सर यदि आप उन्हें अपना स्रोत कोड भेजते हैं तो वे आपके आसपास के काम की सलाह दे सकते हैं या आपके कार्यान्वयन के विकल्प प्रदान कर सकते हैं।

0

कुश उसमें सही है "मैंने एक ही सटीक समस्या का अनुभव किया है। खाली पृष्ठ पृष्ठ-ब्रेक-बाद के कारण है: हमेशा; सीएसएस में। केवल एबीसीपीडीएफ नहीं बल्कि मुद्रित भी एक अतिरिक्त पृष्ठ थूक जाएगा । "

यदि किसी div में "पेज-ब्रेक-आफ: हमेशा" आईई सचमुच हमेशा एक नया पृष्ठ शुरू करेगी, और यदि कुछ भी जोड़ा नहीं गया है तो यह केवल खाली प्रिंट होगा। फ़ायरफ़ॉक्स नहीं करता है।

abcpdf IE8s प्रतिपादन इंजन का उपयोग करता है, और इस तरह एक खाली पृष्ठ बनाता है। ओपी के प्रयोजनों के लिए, केवल एक स्पष्ट ऊंचाई का उपयोग करने से समस्या हल होनी चाहिए, और इंजन आपके लिए पेज ब्रेक डालेगा।

मैं एक समान समस्या को हल करने की कोशिश कर रहा हूं, जहां मैं ऊंचाई को स्पष्ट रूप से सेट नहीं कर सकता क्योंकि कभी-कभी सामग्री में 2 पृष्ठ लग सकते हैं। (प्रत्येक पृष्ठ किसी व्यक्ति से मेल खाता है, और मुद्रित होने पर प्रत्येक व्यक्ति को एक नए पृष्ठ पर प्रारंभ करना चाहिए)। मैंने एबीसीपीडीएफ को ईमेल किया है कि यह देखने के लिए कि क्या खाली पृष्ठ का पता लगाने के लिए उनके पास एक हैक फिक्स है, लेकिन अगर कोई जानता है कि अंतर्निहित समस्या को कैसे ठीक किया जाए और सीएसएस आईई 8 हैक करें ताकि इसे खाली होने पर अंतिम पृष्ठ मुद्रित न किया जा सके। मुझे लगता है कि यह संभव नहीं है, लेकिन यह सुनिश्चित करना चाहता था कि मुझे कुछ स्पष्ट याद आ रही है।

0

AddImageURL() एबीसीपीडीएफ की विधि कमजोर बाध्य विधि है जो आवश्यक क्षेत्र के भीतर कड़ाई से एचटीएमएल प्रस्तुत नहीं करती है जो नए खाली पृष्ठ का कारण बनती है।

AddImageHTML() विधि का उपयोग करने के लिए PDF में अपने वांछित HTML बदलने की कोशिश ..

Doc theDoc = new Doc(); 
theDoc.Page = theDoc.AddPage(); 

int theID = 0; 
theDoc.SetInfo(0, "CheckBgImages", "1"); 
theDoc.SetInfo(0, "RenderDelay", "5000"); 
theDoc.HtmlOptions.Engine = EngineType.MSHtml; 
theID = theDoc.AddImageHtml(HTML); 

while (true) 
{ 
if (!theDoc.Chainable(theID)) 
       break; 
      theDoc.Page = theDoc.AddPage(); 
      theID = theDoc.AddImageToChain(theID); 
     } 

     for (int i = 0; i <= theDoc.PageCount; i++) 
     { 
      theDoc.PageNumber = i; 
      theDoc.Flatten(); 
     } 

     theDoc.Save(HttpContext.Current.Server.MapPath(Path)); 
     theDoc.Clear(); 

यह हमेशा सटीक परिणाम दे देंगे।

2
protected void RemoveBlankPages(Doc pdf) 
{ 
    for (int i = pdf.PageCount; i > 0; i--) 
    { 
     pdf.PageNumber = i; 

     //get the pdf content 
     string textContent = pdf.GetText("Text"); 

     //delete the page if it is blank 
     if (string.IsNullOrEmpty(textContent)) 
      pdf.Delete(pdf.Page); 
    } 
} 
+1

यदि कोई पृष्ठ पर केवल छवियां हैं तो यह काम नहीं करेगा। – socketman

0

अंतिम पृष्ठ में पृष्ठ तोड़ने से बचने के लिए, मैंने ऐसा कुछ किया और यह काम किया।

मैंने यह सुनिश्चित किया कि अंतिम पृष्ठ में पृष्ठ-ब्रेक-बाद नहीं था: हमेशा, यह किसी भी टेम्पलेटिंग या फ्रंट एंड फ्रेमवर्क जैसे एंजुलरजेएस के साथ किया जा सकता है, लेकिन इस उदाहरण के लिए मैं ब्लेड टेम्पलेटिंग का उपयोग करता हूं (लेकिन कोई भी php करना होगा ...)

@if ($last_page) 
    <div class='footer last-page'> 
@else 
    <div class='footer'> 

और उसके बाद मैं अपने शैली पत्रक में इस राशि

.footer { 
    page-break-after:always; 
} 

.last-page { 
    page-break-after:avoid; 
} 
संबंधित मुद्दे