2012-02-23 22 views
7

मैं iTextSharp 4.2.0 का उपयोग करके 15 9 x15 9 अंकों के आयाम में एक छवि का आकार बदलने में सक्षम होना चाहता हूं, लेकिन परिणामी छवि को सटीक आयाम निर्दिष्ट करने की आवश्यकता है।iTextSharp: किसी फ़िक्स आकार को फिट करने के लिए किसी छवि का आकार कैसे बदलें?

मैं इस की कोशिश की है:

Image image = Image.GetInstance(imagePath); 
image.ScaleAbsolute(159f, 159f); 

लेकिन छवि एक वर्ग नहीं है। यह पहलू अनुपात रखता है।

उदाहरण:

enter image description here

और परिणाम छवि इस लोके दिखना चाहिए::

enter image description here

धन्यवाद मैं इस छवि है।

उत्तर

29
समस्या आपके द्वारा बताई गई

क्या होता है जब आप कोशिश करते हैं और AddCell(), जो हमेशाPdfPCell फिट करने के लिए छवि पैमाने को फोन करके एक PdfPTable करने के लिए सीधे एक Image जोड़ने आम तौर पर है। आप Document इस तरह करने के लिए छवि जोड़ रहे हैं तो अगर:

Image img = Image.GetInstance(imagePath); 
img.ScaleAbsolute(159f, 159f); 
PdfPTable table = new PdfPTable(1); 
table.AddCell(img); 
document.Add(table); 

अपने ScaleAbsolute() कॉल को नजरअंदाज कर दिया जाता है। स्केलिंग आप चाहते हैं पाने के लिए:

PdfPTable table = new PdfPTable(1); 
table.AddCell(new PdfPCell(img)); 
document.Add(table); 
+0

यह एक बहुत ही उपयोगी उत्तर है। धन्यवाद। – Emanuel

+0

गंभीर रूप से उपयोगी .. धन्यवाद। –

+1

भी सावधान रहें 'नई पीडीएफपीसेल()। SetImage (img)' द्वारा छवि न जोड़ें, यह सेल की पृष्ठभूमि के रूप में छवि को जोड़ देगा, यह सेल की चौड़ाई और ऊंचाई के लिए स्वत: स्केल हो जाएगा। –

0

PdfPCell सेल में छवि फिट करने के लिए तो बस सच के लिए सेट संपत्ति है।

iTextSharp.text.Image logo = iTextSharp.text.Image.GetInstance("/test.png"); 

    PdfPCell logocell = new PdfPCell(logo,true); // **PdfPCell(Image,Boolean Fit)** 
संबंधित मुद्दे