iTextSharp를 사용하여 PDF 문서를 인쇄하고 있습니다. 회사 로고를 인쇄 할 때까지 모든 것이 괜찮습니다.iTextSharp는 이미지 품질이 좋지 않은 이미지를 PDF로 렌더링합니다.
처음에는 로고의 품질이 좋지 않았지만 여러 이미지로 테스트 한 후 iTextSharp가 제대로 렌더링하지 못했다는 것을 알게되었습니다. 내가 말한 테스트는 코드를 사용하여 PDF를 인쇄 한 다음 Acrobat 8.0으로 문서를 편집하고 이미지를 그렸습니다. 그런 다음 두 개의 문서를 인쇄하고 눈에 띄는 차이를 보았습니다. 내 질문은 이것이 스케일링 문제로 인해 내가 어디 iTextSharp 그것이 이미지를 렌더링 해야하는지 또는 iTextSharp 제한입니다 알려주지 못하는 경우에 알 수 있다면. iTextSharp와 직접 인쇄 alt text http://img710.imageshack.us/img710/4199/sshot2y.png
이미지가
alt text http://img231.imageshack.us/img231/3610/sshot1z.png
이미지 편집 :
Dim para As Paragraph = New Paragraph
para.Alignment = Image.RIGHT_ALIGN
para.Add(text)
Dim imageFile As String = String.Format("{0}{1}", GetAppSetting("UploadDirectory"), myCompany.LogoUrl)
Dim thisImage As Image = Image.GetInstance(imageFile)
thisImage.Alignment = Image.LEFT_ALIGN
para.Add(thisImage)
인쇄 된 이미지는 다음과 같습니다
이미지를 렌더링하는 코드는 다음은 Acrobat 8로 인쇄했습니다.
편집 : 이 로고 이미지는 로고 이미지 그는 사용자 uploades을 원하는대로 업로드 페이지에서로드하고, 나는 다음과 같은 코드를 사용하여 해당 이미지를 확장 :이이 정보를 잃는 원인이되었다
Dim graph As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(newImage)
graph.CompositingMode = Drawing.Drawing2D.CompositingMode.SourceOver
graph.CompositingQuality = Drawing.Drawing2D.CompositingQuality.HighQuality
graph.InterpolationMode = Drawing.Drawing2D.InterpolationMode.Bicubic
graph.SmoothingMode = Drawing.Drawing2D.SmoothingMode.HighQuality
graph.PixelOffsetMode = Drawing.Drawing2D.PixelOffsetMode.HighQuality
graph.DrawImage(newImage, 0, 0, newWidth, newHeight)
graph.Dispose()
graph = Nothing
을 그래서 pdf에 인쇄했을 때 정보가 손실되는 것은 매우 두드러졌습니다. 왜냐하면 iTextSharp가 내가 입력 한 크기 조정에 상관없이 iTextSharp가 그 이상으로 크게 드로잉했기 때문입니다. 그래서 이미지를 원래대로 저장하려고했는데 사용자가 200K보다 큰 이미지를 업로드하지 못하도록하고 이미지의 크기를 조정하여 가로 세로 비율을 조정하고 인쇄하기 전에 iTextSharp Image 개체의 크기 조정을 사용했습니다. 이 큰 이미지에 대한 열악한 품질로 인쇄되는 이미지의 문제점을 해결했지만 pdf 문서가 페이지가 깨지거나 페이지에 맞지 않는 등 이상한 점을 보았습니다. 크기가 좋지만 제대로 작동했기 때문입니다. 더 커. alt text http://img38.imageshack.us/img38/5756/sshot3tc.png
편집 2 :
인쇄 할 전송되는 iTextSharp 이미지를 검사, 그것은 ScaleAbsolute를 사용하여 스케일링 후 변경을 보여줍니다, 즉 이유 이 새로운 이미지의 화면 캡처입니다 페이지가 중단됩니다. 그러나 이미지가 성공적으로 크기가 조정 된 것처럼 올바르게 표시되지만 배경 "용지"는 올바르게 표시되지 않습니다. 지금까지 사용 코드는 다음
Dim imageFile As String = String.Format("{0}{1}", GetAppSetting("UploadDirectory"), myCompany.LogoUrl)
희미한 thisImage 이미지 = Image.GetInstance (imageFile) thisImage.Alignment = Image.LEFT_ALIGN
Dim newWidth As Integer = myCompany.LogoWidth
Dim newHeight As Integer = myCompany.LogoHeight
ResizeImageToMaxValues(newWidth, newHeight)
thisImage.ScaleAbsolute(newWidth, newHeight)
para.Add(thisImage)
pdf.PdfDocument.Add(para)
메소드 ResizeImage은() 할 것처럼 종횡비를 고려한 폭 및 높이의 크기 조정 및 최대 폭 및 최대 높이 제한 유지.
자세한 정보를 제공해야하는지 알려주세요. 감사합니다
내 첫번째 생각은이 해상도 문제가 있음을 것이라고 나는 파일에서 이미지를 생성하고 크기를 설정하면, I itextSharp가 정교한 품질로 렌더링해야하는 것보다 적은 해상도로 만들어 지므로 잘못하고 있습니다. 그러나 나는 당신이 무엇을 생각하는지 알고 싶습니다. – Sebastian