2014-09-20 2 views
1

로 내보내기 PDF를 내보내려면 itextsharp를 사용하십시오. ---- 이미지의 가장자리를 부드럽게 (곡선 가장자리), ----하고 이미지 너비와 높이를 가져 오는 itextsharp 이미지 속성으로 (디스크에서 이미지를 가져 오는 동안) ----디스크에서 이미지의 가장자리를 부드럽게하는 방법/pdf (C#)

pdfDoc.Open(); 
     //pdfDoc.Add(new iTextSharp.text.Paragraph("Welcome to dotnetfox")); 
     iTextSharp.text.Image gif = iTextSharp.text.Image.GetInstance(@"C:\Users\Admin\Desktop\logoall.bmp"); 
     // gif.ScaleToFit(500, 100); 
     pdfDoc.Add(gif); 

이미지에 격자를 만들고 다음과 디스크에 저장 :

Grid companysnapshot = values[0] as Grid; //companysnap shot 

     companysnapshot.Measure(new System.Windows.Size(double.PositiveInfinity, double.PositiveInfinity)); 
     int companywidth = (int)Math.Round(companysnapshot.ActualWidth); 
     int companyheight = (int)Math.Round(companysnapshot.ActualHeight); 
     companywidth = companywidth == 0 ? 1 : companywidth; 
     companyheight = companyheight == 0 ? 1 : companyheight; 

     RenderTargetBitmap rtbmp = new RenderTargetBitmap(companywidth, companyheight, 96d, 96d, PixelFormats.Default); 
     rtbmp.Render(companysnapshot); 
     BmpBitmapEncoder encoder = new BmpBitmapEncoder(); 
     encoder.Frames.Add(BitmapFrame.Create(rtbmp)); 
     FileStream fs1 = File.Create(@"C:\Users\Admin\Desktop\companyss.bmp"); 
     encoder.Save(fs1); 
     fs1.Close(); 

방법도 이미지를 얻고 PDF에 추가하는 것입니다 다음 PDF 페이지

의 배경 색상을 설정합니다 대구를 제발 나는 이것을 위해 나 밖으로 나간다!

+0

비트 맵 이미지는 항상 사각형입니다. 이 맥락에서 "모서리를 부드럽게하는 것"은 무엇을 의미합니까? – usr2564301

답변

1

하나의 게시물에 여러 질문을 결합했습니다. 그것이 질문을 게시하는 방식이 아닙니다. 어쨌든

:

질문 1 : 이미지의 크기는 무엇입니까?

Image 인스턴스가 gif입니다. 이 이미지의 witdh는 gif.ScaledWidthjpg.ScaledHeight입니다. 너비와 높이를 가져 오는 다른 방법이 있지만이 방법은 항상 PDF에서 사용되는 사용자 단위로 크기를 제공합니다.

이미지 크기를 조절하지 않으면 ScaledWidthScaledHeight은 이미지의 원래 크기를 픽셀 단위로 나타냅니다. 픽셀은 iText에 의해 사용자 단위로 취급됩니다. PDF에서 사용자 단위는 기본적으로 점에 해당합니다 (72 점은 1 인치에 해당).

질문 2 : 둥근 모서리로 이미지를 어떻게 표시합니까?

일부 이미지 형식 (예 : PNG)은 투명도를 허용합니다. 모서리를 투명하게 만들어 둥근 모서리의 효과를 모방하는 방식으로 이미지를 만들 수 있습니다.

옵션이 아닌 경우 클리핑 경로를 적용해야합니다. 이것은 내 책의 10 장에있는 ClippingPath 예제에 나와 있습니다. C#을 포팅

예제는이 같은 것입니다 :

물론
Image img = Image.GetInstance(some_path_to_an_image); 
float w = img.ScaledWidth; 
float h = img.ScaledHeight; 
PdfTemplate t = writer.DirectContent.CreateTemplate(w, h); 
t.Ellipse(0, 0, w, h); 
t.Clip(); 
t.NewPath(); 
t.AddImage(img, w, 0, 0, h, 0, -600); 
Image clipped = Image.GetInstance(t); 

이있는 클립 resulting PDF과 같이 타원에 이미지. 이 예제의 Ellipse() 메서드를 RoundRectangle() 메서드로 바꿔야합니다.

질문 3 : 각 페이지에 배경색을 지정하는 방법은 무엇입니까?

이것은 중복되는 질문입니다.

페이지 이벤트를 사용하여 수행하는 배경 색상을 추가하고 당신이 수행하는 방법에 대한 코드를 찾을 수 있습니다 : 다음 질문에 대한 답변을 읽어 보시기 바랍니다 위에서 언급 한 질문에서

+0

변경 후 pdf가 생성되지만 잘라낸 이미지가 pdf에 표시되지 않습니다. –

+0

잘린 이미지가 해당 속성의 gif 및 템플릿을 얻고 있습니다 ... 여전히 클리핑 된 이미지가 PDF에 표시되지 않습니다 –

+1

예를 그대로 그대로 복사하지 않기를 바랍니다. 그렇게했다면 이미지를 'y = -600'위치에 추가 할 것입니다. 이것이 페이지의 보이는 영역 바깥 쪽입니다. 만약 코드를 적용하기 전에 생각을하고,'x'와'y' 좌표를 조정했다면, 우리에게 * 무엇을했는지 보여주세요. –