如何提高pdf.js中的显示质量

时间:2014-02-12 05:25:57

标签: pdf-generation mozilla pdf.js

我正在使用来自mozilla的PDF文档的开源库(pdf.JS)。 当我试图打开质量差的pdf文档时,查看器会以非常糟糕的质量显示它。

enter image description here

但如果我在阅读器或浏览器中打开它(拖放到新窗口),那么文档显示效果很好

enter image description here

有可能改变吗? 这是github mozilla pdf.js

上的这个库

3 个答案:

答案 0 :(得分:1)

也许这是一个与像素比相关的问题,当设备像素比率大于1时(例如iPhone,iPad等),我常常会发生这种情况。您可以阅读this question以获得更好的解释。< / p>

只需在PDF.js Viewer上试用该文件即可。如果它像预期的那样工作,你必须检查PDF.js如何使用像素比率&gt; 1 here。库基本上做的是:

params

但是你必须检查PDF.js如何工作以获得更好的性能

答案 1 :(得分:0)

您只需更改PDF格式的缩放比例,即在渲染页面时:

<?php 
$titles = [];
foreach($models as $model)
{
    $titles[] = sprintf("'%s'", $model->title);
}

$titlesText = implode(',', $titles);

$this->registerJs("
                new Chart(document.getElementById('bar-chart'), {
                type: 'bar',
                data: {
                  labels: [ 
                      ".$titlesText."
                           ],
                  datasets: [
                    {
                      label:'Label',
                      backgroundColor: ['#3e95cd', '#8e5ea2','#3cba9f', '#e7fc00'],
                      data: [479,1654,499, 2632]
                    }
                  ]
                },
                options: {
                  legend: { display: false },
                  title: {
                    display: true,
                    text: 'Title'
                  }
                }
            });
    ", yii\web\View::POS_READY);

这是您必须更改的比例值。然后,给定的尺寸例如,得到的渲染图像将适合画布。在CSS中。这意味着您可以生成更大的图像,将其放入以前的容器中,从而有效地提高分辨率。

答案 2 :(得分: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