Отчеты MigraDoc PDF Отрисовываются по-разному на 2 машинах

Я использую MigraDoc (v1.32.3885) для отображения некоторых отчетов для моего приложения .NET 4.0, которое частично является VB. NET и С#. Основной пользовательский интерфейс — VB.NET, но это не имеет значения. Система имеет ряд различных отчетов.

У одного пользователя возникла проблема с некорректным отображением этих отчетов. Все отчеты, кажется, работают нормально для других пользователей. Я не знаю почему и не знаю, где еще можно найти информацию.

Обычно таблицы отчетов смещены, и логотип компании никогда не отображается — отображается изображение не найдено — даже если пользователь, у которого возникли проблемы, может нормально загрузить логотип в редакторе рисования.

Приложение запускается пользователями из общей папки UNC, куда также копируются все библиотеки DLL. Все пользовательские ПК работают под управлением одной и той же платформы — Microsoft Windows NT 5.1.2600 с пакетом обновления 3 (32-разрядная версия) — XP — с установленным .NET4. Я собрал экран, на котором я регистрирую все файлы пользователей приложения со следующим, которые хранятся в виде списка, а затем копируются в буфер обмена для моего анализа:

Dim assembly = Reflection.Assembly.GetExecutingAssembly()
Dim loadedAssemblies = assembly.GetReferencedAssemblies()

For Each an In loadedAssemblies
        Dim a = Reflection.Assembly.Load(an.FullName)
        Dim fvi = FileVersionInfo.GetVersionInfo(a.Location)
        Dim lvi As New ListViewItem
        Me.FileVersionsListView.Items.Add(lvi)
        lvi.Text = fvi.FileName
        lvi.SubItems.Add(fvi.FileVersion)
Next

Все зарегистрированные файлы и версии используют одни и те же ссылочные сборки — одну и ту же структуру, одни и те же версии файлов (из приведенного выше).

Пользователи используют Adobe Reader для просмотра сгенерированных отчетов в формате PDF, но даже когда я использую MigraDoc.Rendering.Forms.DocumentPreview - появляется тот же плохо отрисованный отчет, что и в Adobe для этого пользователя.

MigraDoc и PDF Sharp, похоже, не имеют никаких внешних зависимостей - только .NET Framework, поэтому я запутался в этом.


person Andez    schedule 15.10.2013    source источник
comment
Вы можете попробовать использовать разность PDF в чем-то вроде Adobe Acrobat, чтобы увидеть, в чем разница между двумя PDF-файлами, или использовать iText RUPS для изучения содержимого каждого из них. Возможно, это может дать некоторые подсказки.   -  person Kevin Brown    schedule 16.10.2013


Ответы (1)


Одни и те же сборки, разные результаты? MigraDoc загружает изображения и шрифты. Вы получаете сообщение об ошибке «Изображение не найдено» на некоторых компьютерах, поэтому, возможно, это проблема с правами пользователя (я понимаю, что изображение загружается с помощью редактора Paint — возможно, это простая ошибка MigraDoc, и изображение загружается для пользователей с доступом для чтения/записи. а не для пользователей с доступом на чтение?Просто дикая догадка...).

При недостаточных правах MigraDoc иногда использует метрики шрифта, который должен использовать, но не может внедрить этот шрифт. Обычно это приводит к большим промежуткам между словами или к перекрывающимся словам.
Вы можете проверить список шрифтов в свойствах документа PDF-файла (в Adobe Reader).

Только дикие предположения. Было бы легче анализировать правильный и неправильный PDF-файл, созданный с одинаковыми данными.

person I liked the old Stack Overflow    schedule 16.10.2013
comment
Мне очень интересно узнать, какие права должны быть даны, чтобы этого бага не было. Я испытываю это прямо сейчас, и мне пришлось вернуться к Arial на данный момент: очень большое расстояние между символами и даже начало и конец слов сталкиваются. Спасибо! - person Mathieu Leblanc; 10.02.2014
comment
@Mathieu Leblanc: MigraDoc, вероятно, использует другой шрифт для метрик, чем встроенный. Я не знаю, какие права нужны. Дайте ему тестовый запуск с пулом приложений, который использует системную учетную запись - если PDF выглядит нормально, вы будете знать, что это проблема с правами. Вы можете использовать частные шрифты. Или узнать, какие права нужны (боюсь, ничем не могу помочь). - person I liked the old Stack Overflow; 11.02.2014