我正在使用来自mozilla的PDF文档的开源库(pdf.JS)。 当我试图打开质量差的pdf文档时,查看器会以非常糟糕的质量显示它。
但如果我在阅读器或浏览器中打开它(拖放到新窗口),那么文档显示效果很好
有可能改变吗? 这是github mozilla pdf.js
上的这个库答案 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。