Tôi đang cố gắng thực hiện một thao tác đơn giản: thêm ảnh (tệp JPG) bên trong tệp PDF được tạo từ đầu bằng PDFsharp v1.32.2608.0 bằng .NET Framework 4.0 và MVC. NETPDFsharp, lỗi hiển thị JPG ở định dạng PDF
tôi đang sử dụng mã tiếp theo để thực hiện hành động này:
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);
vấn đề là khi tôi mở file PDF, hình ảnh xuất hiện sai, hỏng, vỡ ... tôi không biết cách giải thích, bạn có thể tải xuống ảnh gốc và PDF được tạo trong public Dropbox folder tiếp theo để xem kết quả.
Lỗi này không nhất quán, một số ảnh có vấn đề chính xác này, một số khác thì không và tôi không biết tại sao. Có thể là định dạng trong tệp hoặc một cái gì đó tương tự? Nếu đó là vấn đề, định dạng nào hợp lệ?
Mọi trợ giúp sẽ được đánh giá cao.
Chỉnh sửa: Điều tôi lưu ý là hình ảnh sai trông khác nhau tùy thuộc vào chương trình tôi hình dung tệp PDF. Ví dụ, nếu bạn nhìn thấy PDF bằng cách sử dụng visualizer của Dropbox (sử dụng liên kết tôi cung cấp) hình ảnh có vẻ tốt; nếu tôi sử dụng Trình xem PDF trên Chrome, hình ảnh sai nhưng chỉ xuất hiện trong màu đen và trắng và có sọc nhưng vẫn hiển thị; nếu tôi sử dụng Adobe Acrobat Reader DC, hình ảnh vẫn sai nhưng hoàn toàn không được nhận ra.
Chỉnh sửa 2: Tôi đã thay đổi thành PDFSharp v1.50.4000 (beta 3) để xem liệu đó có phải là vấn đề của thư viện hay không nhưng vấn đề vẫn như cũ. Mã này, với phiên bản mới, là như sau:
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);
Xem xét chỉnh sửa của bạn có thể có vấn đề trong chính jpg ... Bạn có thể chia sẻ nó để kiểm tra không? – mkl
@mkl Hình ảnh có thể được tìm thấy trên Dropbox (xem liên kết trong văn bản bên dưới hộp mã). –