PDF-файлы отображаются нормально, но печатаются с неровными краями - PDFSharp

У меня есть сложное приложение, создающее 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


person Andrew Lundgren    schedule 19.06.2012    source источник
comment
Вы печатаете из Acrobat Reader/Pro или используете другое приложение?   -  person Daniel Szabo    schedule 19.06.2012
comment
Ссылка PDF возвращает поврежденные данные.   -  person bluevector    schedule 19.06.2012
comment
Я мог восстановить как PDF, так и JPEG. Однако, прежде чем я попытаюсь ответить на вопрос, мне нужно знать: Как вы создали JPEG из PDF?   -  person Kurt Pfeifle    schedule 19.06.2012
comment
JPEG — это отсканированная печатная страница.   -  person Andrew Lundgren    schedule 21.06.2012


Ответы (1)


Почти два года назад у меня была похожая проблема. Сгенерированный PDF-файл был искажен, когда я его распечатал. Это был просто отчет, не содержащий изображений, но пропущено несколько предложений или слов.

Я использовал шаблон Word, заменил некоторые заполнители для создания отчета, а затем сохранил документ Word в формате PDF с помощью Office надстройка «Сохранить как PDF».

Есть разница, когда вы печатаете PDF с помощью драйвера принтера PCL или драйвера PostScript. Проверьте, есть ли разница между ними. Возможно проблема со шрифтом. Убедитесь, что кодировка шрифта установлена ​​правильно.

В то время я не нашел решения. Наконец прибегнул к преобразованию PDF в изображение и отправке его на принтер. Работал нормально.

Это также должно быть возможно с помощью PDFSharp, вызывая GhostScript для создания изображений из страниц PDF.

person Christophe Geers    schedule 19.06.2012
comment
Я не нашел элегантного решения. Я создал прозрачное изображение размером с PDF, отрисовал все изображения на нем, а затем отрендерил в PDF. Он обходит вращение. - person Andrew Lundgren; 21.06.2012