Próbuję wykonać prostą akcję: dodanie zdjęcia (pliku JPG) do pliku PDF wygenerowanego od podstaw za pomocą PDFsharp v1.32.2608.0 z wykorzystaniem .NET Framework 4.0 i MVC. NETPDFsharp, błąd wyświetlania JPG w pliku PDF
Używam następny kod, aby wykonać tę czynność:
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);
problem polega na tym, że podczas otwierania pliku PDF, obraz pojawia się źle, uszkodzony, uszkodzony ... nie wiem W jaki sposób to wyjaśnić, możesz pobrać oryginalne zdjęcie i wygenerowany plik PDF w następnym public Dropbox folder, aby zobaczyć wynik.
Ten błąd nie jest spójny, niektóre zdjęcia mają ten problem, inne nie, i nie wiem dlaczego. Może jest format w pliku lub coś podobnego? Jeśli to jest problem, które formaty są prawidłowe?
Każda pomoc zostanie doceniona.
Edycja: Coś, co zauważyłem, to że zły obraz wygląda inaczej w zależności od programu, w którym wizualizuję plik PDF. Na przykład, jeśli widzisz plik PDF za pomocą wizualizatora Dropbox (korzystając z podanego linku), obraz wygląda dobrze; jeśli korzystam z przeglądarki Chrome PDF, obraz jest nieprawidłowy, ale wyświetlany tylko w czerni i bieli z paskami, ale nadal widoczny; jeśli używam programu Adobe Acrobat Reader DC, obraz nadal jest błędny, ale zupełnie nierozpoznany.
Edycja 2: Zmieniłem na PDFSharp v1.50.4000 (beta 3), aby sprawdzić, czy nie jest to problem biblioteki, ale problem jest nadal ten sam. Kod z nowej wersji, jest następująca:
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);
Biorąc pod uwagę Twoją edycję prawdopodobnie występują problemy w samej jpg ... Czy możesz udostępnić ją do wglądu? – mkl
@mkl Obrazek można znaleźć na Dropbox (patrz link w tekście poniżej pola kodu). –