2014-02-12 4 views
6

Я использую библиотеку с открытым исходным кодом для документов PDF из mozilla (pdf.JS). Когда я пытаюсь открыть pdf-документы с плохим качеством, зритель отображает его с качеством ОЧЕНЬ ПЛОХО.Как улучшить качество отображения в pdf.js

enter image description here

Но если я открываю его в считыватель, или в браузере (перетащить/падение в новом окне), whis документ отображает хорошо

enter image description here

Можно ли изменить? Вот эта библиотека на GitHub mozilla pdf.js

+3

Да, сообщите об этом по адресу https://github.com/mozilla/pdf.js и предоставите всю необходимую информацию по адресу https://github.com/mozilla/pdf.js/wiki/Frequently-Asked-Questions# wiki-pdfjs-does-not-render-my-files-правильно-can-i-report-a-issue – async5

+0

Похоже, что PDF-документ, сканированный с низким разрешением, находится по адресу http://library.tuit.uz/Prezident/27 .pdf. Это выглядит хорошо в pdf.js на моем компьютере http://i.imgur.com/a75PAoq.png – async5

+0

Можете ли вы опубликовать PDF-файл? Мое предположение/предположение заключается в том, что этот шрифт является шрифтом растрового изображения типа 3 и что файл pdf.js не способен справиться с сглаживанием. – user3307690

ответ

1

Может быть, это проблема, связанная с отношением пикселей, это случалось со мной, когда отношение устройства пикселей больше, чем 1 (например, iPhone, IPAD, и т.д .. Вы можете прочитать this question для ... лучшее объяснение

Просто попробуйте этот файл на PDF.js Viewer Если он работает, как и ожидалось, вы должны проверить, как pdf.js работает с соотношением пикселей> 1 here Что библиотека в основном делает:

canvas.width = viewport.width * window.devicePixelRatio; 
canvas.styles.width = viewport.width; 

Но вы должны проверить, как PDF.js работает лучше Perfomance

0

Вы просто должны изменить масштаб вашего PDF т.е. при отображении страницы:

pdfDoc.getPage(num).then(function(page) { 
     var viewport = page.getViewport(scale); 
     canvas.height = viewport.height; 
     canvas.width = viewport.width; 
... 

Это значение масштаба, вы должны изменить. Затем получившееся изображение будет вписываться в холст, учитывая его размеры, например. в CSS. Это означает, что вы создаете более крупное изображение, вписываете его в контейнер, который у вас был раньше, и поэтому вы эффективно улучшаете разрешение.

0

Существует renderPage функция в web/viewer.js и разрешение печати жестко запрограммировано там как 150 DPI.

function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size) { 
    var scratchCanvas = activeService.scratchCanvas; 
    var PRINT_RESOLUTION = 150; 
    var PRINT_UNITS = PRINT_RESOLUTION/72.0; 

Чтобы изменить разрешение печати до 300 DPI, просто измените приведенную ниже строку.

var PRINT_RESOLUTION = 300; 

См How to increase print quality of PDF file with PDF.js viewer для более подробной информации.

 Смежные вопросы

  • Нет связанных вопросов^_^