2009-08-24 11 views
5

में दस्तावेज़ खोला गया है, मैंने कोड का एक टुकड़ा लिखा है जो पीडीएफएसएचपी लाइब्रेरी का उपयोग करता है। PdfSharp.Pdf.PdfDocument का उदाहरण डिस्क के रूप में अपेक्षित के रूप में सहेजता है। सही सामग्री प्रदर्शित होती है, लेकिन गलत पेज सेटिंग्स पर।पीडीएफएसआरपी - गलत पीडीएफ पृष्ठ सेटिंग्स जब एक्रोबैट

PdfSharp के लिए

डिफ़ॉल्ट पृष्ठ सेटिंग्स हैं:

  1. PdfSharp.PageSizes.A4
  2. PdfSharp.PageOrientation.Portrait

मेरे समस्या यह है कि इन सेटिंग्स आवश्यक सेटिंग को ओवरराइड करने लगते है।

मैं पीडीएफ डॉक्यूमेंट क्लास का उदाहरण बनाता हूं और पीडीएफ पेज क्लास का एक नया उदाहरण अपने पेज संग्रह संपत्ति में जोड़ता हूं। फिर, मैं सेटअप इस तरह पेज:

  1. PdfDocument.Pages [0] .Size = PdfSharp.PageSizes.Letter
  2. PdfDocument.Pages [0] .Orientation = PdfSharp.PageOrientation.Landscape
  3. मैं तार आकर्षित (यह ठीक काम करता है)
  4. मैं डिस्क के लिए दस्तावेज़ (यह ठीक काम करता है)
  5. Process.Start (myPdfFilename) को बचाने - तो एक्रोबैट रीडर मेरी दस्तावेज़ के साथ खुलता है।
  6. पृष्ठ सेटिंग ए 4 कर रहे हैं - पोर्ट्रेट ...

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

किसी के पास कोई विचार है? धन्यवाद!

+0

धन्यवाद PJP मैं इसे इस तरह से संपादित करते समय लिखा था, लेकिन यह bizarly दिखाया गया है और मैं पता नहीं क्यों –

उत्तर

7

कुछ अजीब कारण के लिए, PdfSharp के साथ एक ही व्यवहार करने के लिए नहीं लगता है दोनों निम्नलिखित:

उदाहरण 1 - यह PdfDocument को PdfPage वर्ग के उदाहरण संबद्ध करने के लिए भले ही पेज सेटिंग्स सही हैं प्रतीत नहीं होता कॉलिंग करते समय और पीडीएफ डॉक्यूमेंट.वेव() विधि कहने के बाद।

var pdfDoc = new PdfDocument(); 
var pdfPage = pdfDoc.AddPage(); 
pdfPage.Orientation = PdfSharp.PageOrientation.Landscape; 
pdfPage.Size = PdfSharp.PageSize.Letter; 
pdfPage.Rotate = 0; 
pdfDoc.Save(filename); 

उदाहरण 2 - यहाँ एक ही ...

var pdfDoc = new PdfDocument(); 
pdfDoc.Pages.Add(); 
pdfDoc.Pages[0].Orientation = PdfSharp.PageOrientation.Landscape; 
pdfDoc.Pages[0].Size = PdfSharp.PageSize.Letter; 
pdfDoc.Pages[0].Rotate = 0; 
pdfDoc.Save(filename); 

उदाहरण 3 - यह मेरी समस्या

var pdfPage = new PdfPage(); 
pdfPage.Orientation = PdfSharp.PageOrientation.Landscape; 
pdfPage.Size = PdfSharp.PageSize.Letter; 
pdfPage.Rotate = 0; 
var pdfDoc = new PdfDocument(); 
pdfDoc.Pages.Add(pdfPage); 
pdfDoc.Save(filename); 

किसी को भी मैं यहाँ क्या याद आ रही है के किसी भी विचार है हल है लगता है ? जहां तक ​​मेरा संबंध है, मैं इन उदाहरणों में से किसी एक में ऐसा ही प्रतीत होता हूं।

समाधान है:

var pdfPage = new PdfPage(); 
pdfPage.Size = PdfSharp.PageSize.Letter; 
pdfPage.Orientation = PdfSharp.PageOrientation.Landscape; 
pdfPage.Rotate = 0; 
var pdfDoc = new PdfDocument(); 
pdfDoc.Pages.Add(pdfPage); 
pdfDoc.Save(filename); 

सेट आकार पहले।

किसी भी टिप्पणी और/या उत्तर के लिए धन्यवाद!

+0

यह। ऐसा लगता है कि मुझे पृष्ठ अभिविन्यास सेटिंग को दो बार निर्दिष्ट करना है, अन्यथा यह मान्य नहीं है ... –

+0

मैंने देखा है कि अगर मैं ओरिएंटा सेट करता हूं आकार से पहले टयन, यह अभिविन्यास की तरह रीसेट किया गया था। हालांकि, जब मैं अभिविन्यास से पहले आकार निर्धारित करता हूं, ऐसा लगता है कि यह बेहतर काम करता है। यह सब बहुत भ्रमित ... –

6

मैंने इस मुद्दे की जांच की। ऐसा लगता है कि आपको "पृष्ठ" सेट करना होगा।आकार "सेट करने से पहले" पृष्ठ। ऑरेंटेशन "से पहले। यह एक बग है क्योंकि ऑर्डर को कोई फर्क नहीं पड़ता है।

ऑर्डर मायने रखता है - लेकिन वर्कअराउंड सरल है: उदाहरण 1 में 2 लाइनों को स्वैप करें और आप कर चुके हैं (BTW: 0 के लिए घुमाएं सेट करने की ज़रूरत)

PDFsharp फोरम:।!
http://forum.pdfsharp.net/

+0

आपके उत्तर के लिए बहुत बहुत धन्यवाद! यह सुनिश्चित करने के लिए हमेशा स्पष्ट नहीं होता है कि जब तक कोई अन्य प्रोग्रामर नहीं आ जाता है तब तक हमारा कामकाज अच्छा होता है। इससे मुझे बहुत मदद मिलती है। धन्यवाद! –

+0

और पीडीएफशर्प के फोरम यूआरएल के लिए भी धन्यवाद –

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