Basit bir işlem gerçekleştirmeye çalışıyorum: bir PDF dosyası içinde, PDF Framework dosyası kullanılarak, .NET Framework 4.0 ve MVC kullanarak PDFsharp v1.32.2608.0 ile oluşturulan bir fotoğrafın eklenmesi (JPG dosyası). Bu eylemi gerçekleştirmek için bir sonraki kod kullanıyorum NETPDFsharp, PDF biçiminde bir JPG hatası görüntüleniyor
:
PdfDocument doc = new PdfDocument();
PdfPage pag = doc.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(pag);
Image foto = Image.FromStream([stream]);
XImage xfoto = XImage.FromGdiPlusImage(foto);
gfx.DrawImage(xfoto, 30, 130, 380, 250);
MemoryStream stream = new MemoryStream();
doc.Save(stream, false);
sorun PDF dosyasını açtığınızda, görüntü kırık, yanlış bozuk görünür olmasıdır ... I do not Bunu nasıl açıklayacağınızı bilirseniz, sonucu görmek için orijinal fotoğrafı ve PDF'yi bir sonraki public Dropbox folder sürümünden indirebilirsiniz.
Bu hata tutarlı değil, bazı fotoğraflar bu sorunu çözüyor, bazıları çalışmıyor ve nedenini bilmiyorum. Belki de dosyadaki format ya da benzer bir şey var mı? Sorun buysa, hangi formatlar geçerlidir?
Herhangi bir yardım için teşekkür ederiz.
Düzenleme: Not ettiğim bir şey, PDF'yi görselleştirdiğim programa bağlı olarak yanlış görüntünün farklı görünmesidir. Örneğin, Dropbox'ın görselleştiricisini kullanarak PDF'yi görüyorsanız (sağlanan bağlantıyı kullanarak) görüntü iyi görünüyor; Chrome PDF Viewer'ı kullanırsam, görüntü yanlıştır, ancak yalnızca siyah beyaz ve çizgili ve görünür halde görünür; Adobe Acrobat Reader DC kullanıyorsam görüntü hala yanlıştır ancak tamamen tanınmaz.
Düzen 2: Kütüphanenin bir sorunu olup olmadığını görmek için PDFSharp v1.50.4000 (beta 3) olarak değiştirdim ancak sorun hala aynı. kod, yeni sürümü ile, şu şekilde olmaktadır: Eğer PDFsharp 1.50 kullanabilir veya sonrası ve XImage.FromStream
yerine Image.FromStream
artı XImage.FromGdiPlusImage
kullandığınızda JPEG görüntülerin
PdfDocument doc = new PdfDocument();
PdfPage pag = doc.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(pag);
XImage xfoto = XImage.FromStream([stream]);
gfx.DrawImage(xfoto, 30, 130, 380, 250);
MemoryStream stream = new MemoryStream();
doc.Save(stream, false);
Düzenlemenizi göz önünde bulundurduğunuzda muhtemelen jpg'nin kendisinde sorunlar var ... Bunu inceleme için paylaşabilir misiniz? – mkl
@mkl Resim Dropbox'ta bulunabilir (kod kutusunun altındaki metne bakın). –