У меня есть сложное приложение, создающее PDF-файлы через PDFSharp. Я столкнулся с проблемой, которую очень трудно решить.
При рендеринге изображений (текст также является изображением) с поворотом созданный PDF-файл выглядит нормально, но при печати он имеет неровные края и, как правило, искажается - см. Приложение.
Вот соответствующий код:
// determine how big the image should be
double destinationWidth = Math.Round(pageWidth * imageInfo.WidthFactor);
double destinationHeight = destinationWidth;
// rescale the image to needed size
imageInfo.Image = ImageHelper.ResizeImage(imageInfo.Image, (int)(destinationWidth * 3), (int)(destinationHeight * 3));
// get image
XImage xImage = XImage.FromGdiPlusImage(imageInfo.Image);
// define fill area
XRect destination = new XRect();
destination.X = imageInfo.XFactor * pageWidth;
destination.Y = imageInfo.YFactor * pageHeight;
destination.Width = destinationWidth; //pageWidth * imageInfo.WidthFactor;
destination.Height = destinationHeight; //destination.Width; // shouldn't this use the page height and height factor?
// save state before rotate
XGraphicsState previousState = gfx.Save();
// rotate canvas
gfx.RotateAtTransform(imageInfo.RotationAngle, new XPoint(destination.X + destination.Width / 2, destination.Y + destination.Height / 2));
// render image
gfx.DrawImage(xImage, destination);
// undo transforms
gfx.Restore(previousState);
Пожалуйста, пожалуйста, помогите. Он отлично печатает из средства просмотра PDF в Chrome, чего бы это ни стоило.
Я попытался преобразовать изображения в SVG (пиксель за пикселем) и выполнить рендеринг, который работал нормально, но из-за производительности это было невозможно. Мне нужно найти более элегантное решение.
Огромное спасибо!
PDF: https://dl.dropbox.com/u/49564994/PDF.pdf а>
Распечатка: https://dl.dropbox.com/u/49564994/Print.jpg